Category 赛事速报

先属性明确几个概念

prototype: 原型,函数的一个属性,它本身就是一个对象 {} __proto__: 原型链,通过 __proto__ 可以把互相继承的对象的原型链接起来 原型、原型链__proto__ __proto__ 是每个对象都具有的属性,它指向该对象所继承的原型对象。

或者可以这样说: 对象的 __proto__ 指向对象的构造函数的原型对象

例 1.1代码语言:javascript复制function Person() {

}

let person1 = new Person();

person1.__proto__ === Person.prototype // true

/**

* 解释:

* - person1 对象具有__proto__属性和 Person 构造函数。

* - Person 函数的原型对象就是 Person.prototype

* - 所以 person1对象的原型(person1.__proto__)指向 person1 的构造函数(Person)的原型对象(Person.prototype)

*/而 prototype 是函数才有的属性,它指向该函数的原型对象(Person.prototype)原型链 MDN上的总结:每个实例对象(object)都有一个私有属性(称之为 __proto__)指向它的构造函数的原型对象(prototype)。

该原型对象也有一个自己的原型对象(__proto__),层层向上直到一个对象的原型对象为 null,通过__proto__一层一层像链条一样向上链接原型对象,我们可以称这条链为原型链。

几乎所有 JavaScript 中的对象都是位于原型链顶端的 Object 的实例

延续 例 1.1:

代码语言:javascript复制function Person() {

}

let person1 = new Person();

console.log(person1.__proto__ === person1.constructor.prototype) // true

console.log(person1.constructor.prototype === Person.prototype) // true

console.log(person1.__proto__.__proto__ === Object.prototype) // true

console.log(Person.prototype.__proto__ === Object.prototype) // true

console.log(person1.__proto__.__proto__.__proto__ === null) // true

console.log(Object.prototype.__proto__ === null) // true写在最后我是 AndyHu,目前暂时是一枚前端搬砖工程师。

文中如有错误,欢迎在评论区指正,如果这篇文章帮到了你,欢迎点赞和关注呀😊

未经许可禁止转载💌

speak less,do more.

Copyright © 2088 竞技暴风-网游赛事活动中心 All Rights Reserved.
友情链接