簡體   English   中英

定義JavaScript對象的屬性

[英]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代碼,它警告我

  1. AxisRange.prototype使用的Object.defineProperty分配給參數類型Object。
  2. if(value != this._userMaxValue)中說“可能的無效用法”。

在繼續進行代碼鍵入之前,我需要確保所使用的內容正確無誤。

您正在構造函數中定義原型屬性。 這意味着每次您創建新的AxisRange對象時都會重新定義它。 將其移出構造函數。

您可能還想擺脫這種閉包,因為您沒有使用它來為任何局部變量命名空間,這會使優化JavaScript的嘗試變得復雜。 (如果您曾經使用過Google Closure Compiler,則尤其會抱怨。)

暫無
暫無

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

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