オブジェクトを作成します
•直接オブジェクト測定
var o = {foo: "bar"}•コンストラクター機能
var o = new object();
•プロトタイプの継承
var p = object.create(o);
クラスの継承
JavaScriptオブジェクトには、独自のプロパティと継承プロパティがあります。
•オブジェクトOの属性xを照会するときは、最初にoの属性xを探します。発見されていない場合は、oのプロトタイプオブジェクトのx属性をxまたはプロトタイプがnullが見つかったオブジェクトにx属性を探します。
•Object Oのx属性に値を割り当てる場合、oに既にプロパティxがある場合は、xの値を変更します。 Oにプロパティxがない場合は、oのx属性を作成し、値を割り当てます。
•つまり、プロトタイプチェーンはクエリの場合にのみ機能します。
var o = {x:1}; function p(){this.y = 2; } p.prototype = o; var t = new P(); console.log(t); console.log( 'x' in t); // true console.log(t.hasownproperty( 'x')); // falseまたはHasownPropertyで使用して、オブジェクトにプロパティがあるかどうかを判断できます。
オブジェクトプロパティ
•オブジェクトプロパティを介して転送します
あなたは....オブジェクトのプロパティを横断するために..
使用する場合、プロトタイプチェーンのプロパティを繰り返します。トラバーサル順序は、幅の優先順位で横断することです
したがって、HasownPropertyを使用すると、それがオブジェクトの属性であるかどうかを判断できます。
•オブジェクトプロパティのプロパティ
object.getownPropertyDescriptor()を使用して、オブジェクト固有のプロパティの記述子を取得します
書き込みは、オブジェクト属性が執筆可能かどうかを意味します
例えば
var o = {foo: 'bar'} object.defineProperty(o、 "foo"、{writable:false}); o.foo = 'world'; console.log(o.foo); //まだ出力bar列挙可能とは、オブジェクト属性が列挙可能かどうかを意味します
例えば
アレイ内の長さやその他の属性の列挙可能なものは偽です。
for(配列のp){console.log(p);}出力はありません
構成可能なことは、プロパティの構成可能性と列挙を変更できるかどうかを意味します。
これらの構成プロパティは、object.definePropertiesを使用して定義できます。
object.defineProperty(o、 "foo"、{writable:false});
GETは、オブジェクトプロパティを取得する方法を意味します
セットは、オブジェクトプロパティを設定する方法を表します
例
var book = {_year:2004、Edition:1}; object.defineProperty(book、 "year"、{get:function(){console.log( 'get year'); return this._year;}、set:function(newValue){console.log( 'set year'); -2004;}}}); book.year = 2005;オブジェクトメソッド
ToStringはオブジェクトを文字列に変換します。デフォルトの変換は[オブジェクトオブジェクト]のようなものになるため、json形式に変換する必要がある場合は、json.stringifyを使用できます。
オブジェクトを他のタイプに変換するときは、ValueOFを使用する必要があります。同様に、デフォルトの変換について言う価値はありません。
実行可能なオブジェクト
次の方法で実行可能オブジェクトを作成できます
function bar(o){var f = function(){return "hello world!"; } o .__ proto__ = f .__ proto__; f .__ proto__ = o; return f;} var o = {x:5}; var foo = bar(o); console.log(foo()); console.log(foo.x); console.log(typeof foo); // functionオブジェクト(プロトタイプチェーンを使用)として、または直接呼び出す関数として使用できます