[英]Define a property for a JavaScript object
這樣的屬性的getter和setter聲明正確且最有效嗎?
var AxisRange = (function(){
function AxisRange(){
this._userMaxValue = 0.0;
Object.defineProperty(AxisRange.prototype, "UserMaxValue", {
get : function(){
return this._userMaxValue;
},
set : function(value){
if(value != this._userMaxValue){
this._userMaxValue = value;
this.validateUserMaxValue();
this.validateUserStep();
this.synchronizeActualRange();
}
}
});
}
AxisRange.prototype.validateUserMaxValue = function(){
alert("validateUserMaxValue");
};
return AxisRange;
})();
另外,我正在使用JetBrains WebStorm編寫我的JS代碼,它警告我
AxisRange.prototype
使用的Object.defineProperty
分配給參數類型Object。 if(value != this._userMaxValue)
中說“可能的無效用法”。 在繼續進行代碼鍵入之前,我需要確保所使用的內容正確無誤。
您正在構造函數中定義原型屬性。 這意味着每次您創建新的AxisRange對象時都會重新定義它。 將其移出構造函數。
您可能還想擺脫這種閉包,因為您沒有使用它來為任何局部變量命名空間,這會使優化JavaScript的嘗試變得復雜。 (如果您曾經使用過Google Closure Compiler,則尤其會抱怨。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.