高度な JavaScript プログラミングに関するメモを整理しているときに、オブジェクト指向の設計に関する章を見つけました。通常使用する JS オブジェクトの 90% 以上がデータ属性とアクセサー属性に分かれていると記載されていました。データ属性; データ属性とアクセサー属性について常に説明します。
データ属性: データ値の場所が含まれており、値を読み書きできます。
アクセサー属性: データは含まれません。値には、ゲッター関数とセッター関数のペアが含まれます。アクセサー プロパティを読み取るときは、有効な値を返す役割を担うゲッター関数が呼び出され、新しい値が渡されます。
ここでの紹介の焦点はアクセサー プロパティです。オブジェクトのアクセサー プロパティを設定するには、es5 の Object.defineProrerty() メソッドのみを使用できます。 .year=2005 が実行されると、実際に実行されます。book.year を実行すると、year の get メソッドが実行されます。
この原則が原則です。 vue の双方向データ バインディングでは、vue コンポーネント内にいます。属性データを宣言するとき、オブジェクトは実際にこの属性をアクセサー属性にカプセル化しています。Vue のデータ層は実際には単なる装飾であると常に考えていましたが、API が計算された属性を検出した後、データ層は関数を完全に実装できます。 Ajax を送信して番号を取得する必要はありません。これは準備完了 (2.0 がマウントされています) であり、データのフォーマットまたはページの動的効果の制御のみを行うことができます。この JS の構造はバックグラウンド MVC と同じくらい明確で階層的です。これは私が突然思いついたアイデアであり、vue を使用している友人にアイデアを提供するためのものです。
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 console.log(book.year);//2005
。