1.2.4.2.瞭解原型
在JavaScript中, 所有物件包括函數都有原型屬性, 這個屬性會參考到另一個物件稱為proto
當物件中不到某個屬性時, 就會往原型找
物件原型也可以指向另一個原型
當要尋找屬性時:
obj.prop1 obj.prop2 obj.prop3
由於obj本身的屬性沒有prop2, prop3, JavaScript engine會向proto, proto的proto尋找屬性跟方法, 這就是原型鍊 (prototype chain):
範圍鍊是尋找取用的變數, 原型鍊則是跟取用的屬性或方法有關
不同的obj可以指向同一個proto
範例
var person = {
firstname: 'Default',
lastname: 'Default',
getFullName: function(){
return this.firstname + ' ' + this.lastname;
}
}
var john = {
firstname: 'John',
lastname: 'Doe'
}
//don't do this
john.__proto__ = person;
//印出'John Doe'
console.log(john.getFullName());
//印出'John'
console.log(john.firstname);
Last updated
Was this helpful?