原型链是JavaScript中的重要概念,它是理解对象继承和属性查找机制的关键。在JavaScript中,每一个对象都有一个原型对象,而原型对象又是一个对象。通过原型链,我们可以实现继承并共享属性和方法。
原型链的机制是通过对象之间的链接来实现的。每个对象都有一个隐藏的__proto__
属性,指向它的原型对象。而原型对象又可以有自己的原型对象,依此类推,形成一条链条,这就是原型链。
下面是一个具体的代码示例,帮助理解原型链的工作原理:
// 创建一个对象 var person = { name: "John", age: 30, greet: function() { console.log("Hello, my name is " + this.name); } }; // 创建一个新对象,并将其原型设置为person对象 var student = Object.create(person); student.id = "1001"; student.study = function() { console.log("I\'m studying..."); }; // 创建一个再下一级的新对象,并将其原型设置为student对象 var undergraduate = Object.create(student); undergraduate.major = "Computer Science"; undergraduate.grade = 2; // 可以通过原型链进行属性和方法的继承 console.log(undergraduate.name); // 输出 "John" undergraduate.greet(); // 输出 "Hello, my name is John" // 可以访问原型对象上的属性和方法 console.log(undergraduate.age); // 输出 30 student.greet(); // 输出 "Hello, my name is John" // 可以在子对象上添加自己的属性和方法 console.log(undergraduate.id); // 输出 "1001" undergraduate.study(); // 输出 "I\'m studying..."