簡単な言葉でES6新しいオブジェクト-5 -1オブジェクトを作成する方法

オブジェクトのプロパティを強化:



することができnew Object()オブジェクトを初期化するための方法、使用またはリテラルフラグ(フラグの初期化)。括弧/括弧内のオブジェクトの初期化子は、(構成の区切られたリストを含むゼロまたはコンマ複数のオブジェクトは、名前およびそれに関連する値の組成を属性)。上記の引用は、新しいオブジェクトを作成する方法についてです。次のコード。空のオブジェクトで、ヌルオブジェクトは、プロパティを1つだけ持っています。_proto_つまりオブジェクトを作成するために使用object.create、あなたはNULLを渡し、ここで、パラメータを渡す必要があります。それは本当に空のオブジェクトであり、何も持っている本当の何ものオブジェクトを生成する、Object.create文法新しいES6を。そのメソッドのいずれかが、例えば、以下の方法でのtoString呼び出して、利用できません呼び出すには上記の例に作成し、まだ数自身のtoStringメソッドがあるパラメータのObject.prototypeを渡すES6は別の方法を作成し、。上のCと、ターゲット・ES5を作成するための構文は同じです。} {に相当する新しいオブジェクト()= 出力Dオブジェクトが見える同じ、および外観オブジェクトは、表面からある量で形成されているオブジェクトは、の関数である場合、非リテラル ES6が空により可能ですそれは本当の空のオブジェクトを持つことができます。ES5生産許可証が本当に空のオブジェクトではありません。ない限りは、生成した後、このプロパティを削除しています。ES2015は、公開2015年以来ES6、ES6です。 Object.create(){}































ES6のための新しいマーク



オブジェクト属性の取得は、次の2つは等価です

新しい構文、ES6オブジェクトはより厳格になります

カスタムプロパティではなく、小さな定義の背後にあります。Aのフロントカバーの後ろ

略語オブジェクト

左が文字列の右にある場合にのみ、以下の速記の方法を使用することができます変数です。

動的な属性名、動的なキー

ここに名前の下にプログラムをしたい、これはの主要なターゲットとなり

、この書き込みが実際にはない、出力が、名前はキー名です

ヌルオブジェクトを宣言するためのオブジェクト、

そうすることは、時間の最初に定義することができない、あまりにも面倒ですそれらに名前の価値を置きます。

だから、ES6は、新しい構文を提供します。動的属性名と呼ばれる角括弧で囲まれた直接の[名前]、。このようなES6は、文字列の名前ではなく、変数名をしたい知っている

巨大なピットである、ここに新しい多くの人々が、最終的には理解していない引用符なしの名前でこれをJS変数または文字列です。通常、引用さは最高です。

取得&設定

年齢の値のいくつかは、変更されています。あなたは、年齢の値にいくつかの制限を行うことができます。

読み取りと書き込み操作属性は、カスタマイズされました。年齢を取得する時間は、アクセスの機能がされている読み込み、書き込みアクセス時間は、設定された年齢の関数です。私たちは、内部で書かれたいくつかの判定関数を作ります。


例えば、年齢があり、そう年齢というプロパティがあり、実際には彼は、get GAEアクセスし、設定年齢アクセサaは、値のように見えます。これは、動的なプロパティです。

だから、下線の年齢は必要なのか?それは必要ではないかもしれません。
実際には二つの機能o.age。あなたはo.age時間、年齢機能を取得するための訪問と同等のものを読まないとき。


Object.defineProperty getでプロパティを提供するために、窓を追加するには、。ウィンドウにプロパティを追加します。
だから、ウィンドウオブジェクトのプロパティがあり、

我々は読み取り処理のトップを制御するため、アクセスの値が、それぞれの時間変更は、。各読み取りwindow.aは、実際には関数の読み取り戻り値を取得します。だから我々は、同じ時間ウィンドウで行うことができますが、1、2に等しい

1、2に等しくなるように、最終的にtrueを返しますがtrueの間、。

プロパティ名は、算術計算プロパティを行うことができます

拡張属性


直接等しいOBJ1 OBJ2を書く、OBJ1になりますし、同じオブジェクトは、オブジェクトの、彼らは単に保持アドレスobj2があります。

4. 4のOBJ2修正値は、その後、OBJ1の値です。彼らは、同じオブジェクトです。だから、完全なコピーを行う必要があります。彼らは、異なるオブジェクトを作ります。

それを証明する方法3つの等号表情で同じオブジェクト?です。

OBJ2に、ループのために、その後、各オブジェクトOBJ1の内部コピーを空のオブジェクトを定義するOBJ2の最も簡単な完全なコピー

そしてOBJ1値が変化しない、OBJ2の値を変更するために移動するには、この時間。私はAを所有しているため。ないあなたのA。だから、それらの間に関係はありません

簡単な方法Object.assign

値{}の後ろにオブジェクトの前に各オブジェクトOBJ1のコピーキー。上記目的及び戻り値としては、バック戻ります。私たちは、obj2の取得

1 2の値を変更しようとするために、この時間は変更されません 

いくつかのサイクルのために保存そうに。これはES6が提供する構文です。

ES6はまた、単一点オペレータ文法方法を提供します




包括的な文法は、

xのOBJ4関数を呼び出します。

プロトタイプを変更


この値は、ブラウザの用途に任されている、すべてのオブジェクトがprotoの値を強調しているが、ES6は明らかにあなたが訪問を所有していない定義されました。それは共通の属性である場合だけを覚えておくことです。
プロパティではありません、のtoStringの合計は、内部のプロパティです。

a.valueOfも機能です。


あなたはAのいずれかを持っていない場合。彼らはどこから来たのtoStringとのvalueOf?図を参照してください


__proto__実際のObject.prototypeを。このオブジェクト指向のObject.prototype

私たちは、多くの場合、これらのプロパティとメソッドを持っているのObject.prototype。

あなたはそれが隠された属性の変更をしたい、Bを宣言した場合は、sayHiという関数があり、

私はsayHiもこの性質を持っていたかった、時間パラメータは、着信Bを作成Object.create。今空のオブジェクトが、あるsayHi

すなわちa__proto__とbが等しいです。我々は、この関係と呼ばれるbは、プロトタイプの目的である

プロトタイプがあるのObject.prototype前。今プロトタイプは、いくつかの特性Bのすべてを介して直接アクセスすることができること、であるB、です。


だから、のtoStringは、それはありますか?あります

、まだプロトタイププロトタイプが。その内のtoStringあり


、Bのプロトタイプオブジェクトが


標準ES6はいつでもアンダースコアプロトを使用しないでください

オブジェクトのプロトタイプを取得getPrototypeOf

プロトタイプを取得するための方法を提供し、我々はgetPrototypeOfを推奨

全く__proto__プロパティの決意がないhasOwnPropertype裁判官と。しかし、その代わりに.__ proto__との直接出力することができます。ここではそれを覚えています。

__proto__を参照するための標準ではありません。


JSONとjsオブジェクトオブジェクトの区別は、

JSONは、データ言語です。機能なし
 

終了


 

おすすめ

転載: www.cnblogs.com/wangjunwei/p/11824890.html