Skip to content

Latest commit

 

History

History
29 lines (24 loc) · 955 Bytes

understand-the-difference-between-prototype-getPrototypeOf-and-__proto__.md

File metadata and controls

29 lines (24 loc) · 955 Bytes

理解prototype,getPrototypeOf__proto__之间的不同

// 创建一个类
function Student(name, age) {
    this.name = name;
    this.age = age;
}
// 创建原型
Student.prototype.info = function() {
    console.log('My name is ' + this.name + ' and my age is ' + this.age);
};
// C.prototype == new C().__proto_   C.prototype == Object.getPrototypeOf(new C())

var s = new Student('dreamapple', 22);
s.info(); // My name is dreamapple and my age is 22

console.log(Student.prototype === s.__proto__); // true
console.log(Student.prototype === Object.getPrototypeOf(s)); // true

源码


谨记

  • C.prototype属性是new C()`创建的对象的原型。
  • Object.getPrototypeOf(obj)ES5中检索对象原型的标准函数。
  • obj.__proto__是检索对象原型的非标准方法。
  • 类是由一个构造函数和一个关联的原型组成的一种设计模式。