帮你完全搞懂JS中的prototype、__proto__与constructor(图解)函数
一个普通函数用于建立一类对象时,就被称做构造函数。ui
1.在函数内部对新对象(this)的属性进行 设置,一般是添加属性和方法 2.构造函数能够包含返回语句(不推荐)但必须是this,或其余非对象类型的值
1. 建立一个空对象 var obj={}; 2.将这个空对象的_prop_成员指向构造函数对象的prototype成员对象 obj._prop_=CO.prototype 3.将构造函数的做用域赋值给新对象 this只想obj CO.call(obj) 4.返回新对象obj . return obj;
对象:一个对象的隐式原型指向 构造该函数的构造函数的原型
方法:不只有proto属性还有 原型属性(prototype)this
__proto__ 属性是Object.prototype 一个简单的访问器属性,其中包含get和set的方法。 任何一个__proto__的存储属性都继承于Object.prototype,但一个访问属性若是不是来源于Object.prototype就不拥有.__proto__属性。
指向一个对象,这个对象包含全部实例共享的属性和方法spa
原型对象又一个属性,叫作constructor,这个属性包含一个指针,指回原构造函数.net
function Foo(){console.log("Foo")} let f1 = new Foo() f1.__proto__ == Foo.prototype //{constructor:{...};__proto__:Object} f1.constructor // Foo() Foo.constructor // Function() Foo.__proto__ == Function.prototype //f() {[native code]