var x = function() {
};
x.prototype = { abc: 25 };
有人能向我解釋這是什麼意思。這可以在沒有.prototype的函數中完成嗎?
var x = function() {
// something here ?
};
var x = function() {
};
x.prototype = { abc: 25 };
有人能向我解釋這是什麼意思。這可以在沒有.prototype的函數中完成嗎?
var x = function() {
// something here ?
};
原型是多麼的類模型工作在JavaScript的 - 你已經創建了一個類x
具有財產abc
默認爲25
:
var obj = new x();
alert(obj.abc); // 25
功能x
是類的構造函數,它當該類的新實例被創建並且可以初始化它時被調用。這意味着,當然,你可以只設置abc
屬性有:
var x = function()
{
this.abc = 25;
};
var obj = new x();
alert(obj.abc); // 25
這就是所謂但是不太有效的方法:
ECMAScript的和諧有nicer syntax定義類和原型,不過這個人是不是在任何瀏覽器中實現尚未:
class x {
constructor() {
...
}
public abc = 25;
}
這相當於你的代碼定義的雛形,只是將相關的操作好一點。
因此,定義函數時我無法做到這一點?我需要稍後添加原型? –
是的。我不會叫x類,但它是一個構造函數 –
@SamanthaJ:我更新了我的答案。總結:不,你不能一次定義構造函數和原型,儘管計劃中有更好的語法。是的,你可以在構造函數中定義屬性,但這種方法有缺點。 –
下面應該解釋很多:http://stackoverflow.com/questions/16063394/prototypical-inheritance-writing-up/16063711#16063711原型保存內存和CPU以及使您能夠使用可識別的OO模式 – HMR
您可以在構造函數中執行'this.abc = 25',這大致相同。 –