js原型

2019-11-8 hubo Web前端

凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。


f1,f2,归根结底都是通过 new Function()的方式进行创建的。


Function Object 也都是通过 New Function()创建的。


function f1(){}; 

var f2 = function(){};

var f3 = new Function('str','console.log(str)');


实例的构造函数属性(constructor)指向构造函数。


每个函数对象都有一个prototype 属性,这个属性指向函数的原型对象。


原型对象(Person.prototype)是 构造函数(Person)的一个实例。


所有的原型对象都会自动获得一个 constructor(构造函数)属性,这个属性(是一个指针)指向 prototype 属性所在的函数(Person

JS 在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做proto 的内置属性,用于指向创建它的构造函数的原型对象。


Person.prototype.constructor == Person;

person1.__proto__ == Person.prototype;

person1.constructor == Person;

Object.prototype.__proto__ === null


所有函数对象的proto都指向Function.prototype,它是一个空函数(Empty function

用对象直接量方式定义的对象其构造器(constructor)指向的是根构造器Object


Person.prototype = {

    getName: function() {}

}


Person.prototype.constructor = Object.constructor = 

ƒ Object() { [native code] }

网站备案号:京ICP备11043289号-1 北京市公安局网络备案 海1101084571
版权所有 北京育灵童科技发展有限公司 Copyright © 2002-2024 www.elight.cn, All Rights Reserved