JS Prototype 範例解說

Demo source code

function Person(name, age) {
  this.name = name;
  this.age = age;
}
  
Person.prototype.log = function () {
  console.log(this.name + ', age:' + this.age);
}
  
var nick = new Person('nick', 18);
var peter = new Person('peter', 20);
  
console.log(nick.log === peter.log) // true
  
// 功能依舊跟之前一樣
nick.log(); // nick, age:18
peter.log(); // peter, age:20

結論

你有一個叫做 Person 的函數,就可以把 Person 當作 constructor,利用 var obj = new Person() 來 new 出一個 Person 的 instance,並且可以在 Person.prototype 上面加上你想讓所有 instance 共享的屬性或是方法。

Resources


理解原型鍊到底是什麼東西,也寫了一些簡單的小程式來模擬 JavaScript 在查找原型鍊的過程。

1個讚