ホームページ  >  記事  >  ウェブフロントエンド  >  毎日のJavaScript学習まとめ(属性定義法)_JavaScriptスキル

毎日のJavaScript学習まとめ(属性定義法)_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 15:31:151389ブラウズ

Definition. 属性を定義するには、次のような対応する関数を使用する必要があります:
Object.defineProperty(obj, "prop", propDesc)
obj に独自の属性 prop がない場合、この関数の機能は、独自の属性 prop を obj に追加し、値
を割り当てることです。 パラメータ propDesc は、属性の特性 (書き込み可能性、列挙可能性など) を指定します。
obj がすでに独自の属性 prop を持っている場合、この関数の機能は、その属性値を含む既存の属性の特性を変更することです。
1. プロパティを定義します

 var book = {
   _year: 2004,
   edition: 1
  };
   
  Object.defineProperty(book, "year", {
   get: function(){
    return this._year;
   },
   set: function(newValue){
   
    if (newValue > 2004) {
     this._year = newValue;
     this.edition += newValue - 2004;
    
    }
   }
  });
  
  book.year = 2005;
  alert(book.edition); //2

2. __defineSetter__ と __defineGetter__

 var book = {
   _year: 2004,
   edition: 1
  };
   
  //legacy accessor support
  book.__defineGetter__("year", function(){
   return this._year; 
  });
  
  book.__defineSetter__("year", function(newValue){
   if (newValue > 2004) {
    this._year = newValue;
    this.edition += newValue - 2004;
   } 
  });

  
  book.year = 2005;
  alert(book.edition); //2
以上が今日のJavaScript学習のまとめですが、今後も毎日更新していきますので、ご注目いただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。