簡體   English   中英

我可以在對象原型(方法)中定義屬性嗎?

[英]Can I define a property within an object prototype (method)?

問題第1部分:我已經創建了一個包含屬性的對象構造函數,但我想知道是否可以在其中一個方法中定義該對象的另一個屬性。 例如:

var Player = function(p1) {
    this.property1 = p1;
    this.property2 = 0;
}

那么,我可以在一個方法中定義this.property3 ,如:

Player.prototype.drawMethod = funtion() {
    this.property3 = 1;
}

並讓它可訪問,如:

var obj = new Player(true);
if (obj.property3 ===1 && obj.property1 === 1) {
    //code
} else {
    obj.property3 = obj.property2;
}

問題第2部分:此外,屬性是否被接受為函數,我將使用以下方式調用它們:

this.func = function() {
    //code
}
...
obj.func();

我想知道我是否可以在其中一個方法中定義對象的另一個屬性

是的你可以。

但請注意,這被認為是錯誤的樣式,因為它在單個點(構造函數)中不可見實例將具有的屬性。 眾所周知,引擎也不會優化這種情況 - 它們為構造函數創建的對象形狀保留了必要的空間,並在實例化后需要一些額外的工作來更改它。

屬性是否會被接受為函數,我會稱之為[類似方法]嗎?

是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM