1. 程式人生 > >javascript: prototype

javascript: prototype

構造 原型 span ear 轉載 .com ise height getter

[ 作者:byeyear Email:[email protected] 轉載請註明 ]

古希臘有哲學家認為,在那遙遠的虛無之處,人類目光所不能及的地方,有一匹原型馬,世間萬馬皆依此而生。我們有構造函數horse()用於從原型馬構造一匹我們能看到、觸摸到、騎到的馬:

function horse()
{
    this.color = ‘red‘;
    this.height = 80;
    this.length = 160;
}
// Now, if you want, you can construct your own horse.
// var myHorse = new horse();

可以從該構造函數訪問原型馬:

console.log(horse.prototype);

老子說過,一生二,二生三,三生萬物。我們的原型馬生自Object:

console.log(horse.prototype.__proto__);
>constructor: ƒ Object() >hasOwnProperty: ƒ hasOwnProperty() >isPrototypeOf: ƒ isPrototypeOf() >propertyIsEnumerable: ƒ propertyIsEnumerable()
>toLocaleString: ƒ toLocaleString() >toString: ƒ toString() >valueOf: ƒ valueOf() >__defineGetter__: ƒ __defineGetter__() >__defineSetter__: ƒ __defineSetter__() >__lookupGetter__: ƒ __lookupGetter__() >__lookupSetter__: ƒ __lookupSetter__()
>get __proto__: ƒ __proto__() >set __proto__: ƒ __proto__()

在原型馬上新定義的方法可被早先構建的現實馬所用:

var myHorse = new horse();
horse.prototype.run = function() {alert(‘I am running!‘); }
myHorse.run();

我們的馬可騎,有自己的名字,黑色:

myHorse.color = ‘black‘;
myHorse.name = ‘Lili‘;
myHorse.ride = function() { alert(‘Ride me!‘); }

javascript: prototype