我想了解JavaScript中的原型。瞭解JavaScript中的原型概念
下面提到的實施例1和實施例2都給出相同的輸出。
實施例1 [顯示 'F1 L1']
function parent(fname, lname) {
this.firstName = fname;
this.lastName = lname;
this.fun1 = function() {
return this.firstName + " " + this.lastName;
};
};
function child() {};
child.prototype = new parent('f1', 'l1');
var objChild = new child();
alert(objChild.fun1()); // alert displays 'f1 l1'
實施例2 [也顯示 'F1 L1']
function parent(fname, lname) {
this.firstName = fname;
this.lastName = lname;
};
parent.prototype.fun1 = function() {
return this.firstName + " " + this.lastName;
};
function child() {};
child.prototype = new parent('f1', 'l1');
var objChild = new child();
alert(objChild.fun1()); // alert displays 'f1 l1'
實施例1和實施例2之間的唯一區別是fun1()函數的定義方式。 我的問題是,當定義fun1()的方法給出相同的輸出時,兩者之間有什麼區別(我理解我對原型的理解不清楚)。
請說明
@didierc原型不能像模板一樣工作。原型對象始終與實例保持分離。 – Pointy
@有點確實,錯誤的比喻。這可能是OP令人困惑的一點,所以我的評論實際上沒有幫助。謝謝你澄清! – didierc
下面的答案詳細解釋了原型是什麼,它是如何使用的以及如何將它用於繼承:http://stackoverflow.com/questions/16063394/prototypical-inheritance-writing-up/16063711#16063711 – HMR