再学習フロント - 研究は-JavaScriptオブジェクトを指摘します

説明

チェンシャオは、コラムオープンオタク時にこの主要な仕上げ私の研究ノートをフロントエンドでない(冬) - 学びを再。侵害した場合、私に連絡し、あなたに感謝してください。

JavaScriptのオブジェクト機能

  • 二つの同一のオブジェクト、また同じ目的:を有するオブジェクトの一意の識別子
  • 意志で異なる状態で同じオブジェクト:オブジェクトが状態を持っています
  • 状態の動作では、オブジェクトを変更することができます動作するオブジェクト

オブジェクトの一意性は、全ての固有の識別と、メモリアドレス、一意のIDを持つオブジェクトのメモリアドレスに具現されます。

 var o1 = { a: 1 };
 var o2 = { a: 1 };
 console.log(o1 == o2); // false
复制代码

物体の挙動状態は内部JSにおけるオブジェクトのプロパティです。

    var o = { 
        d: 1,
        f() {
            console.log(this.d);
        }    
    };

复制代码

オブジェクトは動的であるJSでは、実行時にオブジェクトにプロパティを追加することができます。

    var o = { a: 1 };
    o.b = 2;
    console.log(o.a, o.b); //1 2
复制代码

javascriptオブジェクトの属性の二つのタイプ

JSでは、プロパティは、単純な名前と値ではありません機能(属性)のセットで説明したプロパティ(プロパティ)JS

前記4つのデータ属性

  • 値:プロパティの値
  • 書き込み可能:プロパティを割り当てることができるかどうか
  • enumrable:中に使用される属性を列挙することができます
  • 設定可能:削除または変更することができます

請求項4アクセサ(ゲッター/セッター)の特性

  • ゲッター:関数または未定義のは、属性値が取られたときに呼び出されます
  • セッター:機能または未定義、彼らは呼んでいたときに、プロパティ値を設定します
  • enumrable:中に使用される属性を列挙することができます
  • 設定可能:削除または変更することができます

アクセスプロパティこのような特性は、完全に異なる値を取得し、ユーザが属性を読み書きすることを可能にする、読み取り時にコードを実行して書き込むためには、それは糖衣構文の機能と見なすことができます。

私たちは通常、あなたがgetOwnPropertyDescriptorを表示するために使用することができ、trueに設定可能なデフォルト、列挙、書き込み可能なデータ属性を生成するために使用されるコードの属性を定義します

    var o = { a: 1 };
    o.b = 2;
    //a 和 b 皆为数据属性
    Object.getOwnPropertyDescriptor(o,"a") // {value: 1, writable: true, enumerable: true, configurable: true}
    Object.getOwnPropertyDescriptor(o,"b") // {value: 2, writable: true, enumerable: true, configurable: true}
复制代码

私たちは財産の特性を変更したり、アクセサプロパティを定義したい場合は、我々はのDefinePropertyを使用することができます

    var o = { a: 1 };
    Object.defineProperty(o, "b", {value: 2, writable: false, enumerable: false, configurable: true});
    //a 和 b 都是数据属性,但特征值变化了
    Object.getOwnPropertyDescriptor(o,"a"); // {value: 1, writable: true, enumerable: true, configurable: true}
    Object.getOwnPropertyDescriptor(o,"b"); // {value: 2, writable: false, enumerable: false, configurable: true}
    o.b = 3;
    console.log(o.b); // 2

复制代码

あなたがオブジェクトを定義するときは、getおよびsetアクセサプロパティを定義するためのキーワードを使用することができます

var o = {
  get a(){return 1}
}

console.log(o.a)
复制代码

異なるデータ属性を持つアクセスプロパティは、各訪問は、プロパティのゲッターやセッターの機能を実行されます。ここでは、すべてのOAは1を返し、ゲッター関数は1を返します

データは、固有値や属性値アクセサ属性値を前記実行時にJSのオブジェクト、「プロパティを設定し、」文字列や記号がキーにプロパティです、

ます。https://juejin.im/post/5d0b9af45188251627587961で再現

おすすめ

転載: blog.csdn.net/weixin_34152820/article/details/93180814