原型继承javascript
来自Java背景的Javascript是我想要抓住的一个新世界。
我对原型继承如何精确地起作用感到困惑。
我从__proto__ VS得到了什么。 原型在JavaScript和其他来源是有帮助的,但我真的想确保我掌握这个话题。 以下说法正确吗?
__proto__
是对象的一个属性,它是一个代表对象原型的对象。 该对象反过来也可以具有__proto__
属性,直到达到链的末尾的Object对象。
prototype
是一个函数对象的属性,并且是一个对象本身。 当使用new
关键字从一个函数实例化一个对象时,该新实例的__proto__
将成为构造函数的prototype
属性。 例如:
let random = new Array();
console.log(random.__proto__); //logs the object which is the prototype of random
console.log(Array.prototype); //logs the same object as random.__proto__
console.log(random.__proto__.__proto__); // logs the Object prototype object
console.log(Object.prototype); // logs the same object as random.__proto__.__proto__
同样,当对象相互测试以获得相等时,它们是以下代码中的相同对象:
console.log(random.__proto__ === Array.prototype); // logs true
console.log(random.__proto__.__proto__ === Object.prototype ); // logs true
由于通过引用测试对象是否相等,这是否意味着实际上存在Object.prototype
对象的一个实例,并且所有对象__proto__
引用此实例?
提前致谢。
如果你的console.log(typeof(Ojbect))和console.log(typeof(Array))你有一个“函数”所有不是基本类型的(undefined,null ...)是一个对象或“一个实例“在JavaScript中,意味着函数从对象继承。
链接地址: http://www.djcxy.com/p/30063.html