オブジェクトを作成します。
図1に示すように、直接オブジェクトの量。
VAR点= {X:0、Y:0}; //点は、必ずしもオブジェクトを作成するためのクラスを持っていた必要性、異なるC位で、オブジェクトです。
2、で新しいオブジェクトを作成
VARさd =新しいDate(); // Dateオブジェクトを作成します。
3、プロトタイプ
Object.prototypeは//オブジェクトのプロトタイプへの参照を取得するために使用します。すべてのオブジェクトは、直接的または間接的のObject.prototype、同等のC#のSystem.Object()から継承されています。
Date.prototypeとのObject.prototypeから新しいDate()継承によって作成されたオブジェクト。
4、Object.create()
Object.createは()を使用すると、新しいオブジェクトを作成するために使用することができ、静的な関数です。
削除()delete()メソッドが唯一、独自のプロパティを削除することができ、継承プロパティを削除することはできません。削除()単に切り離さプロパティとホストオブジェクト、属性がバック動作なし属性。
= {VARの 著者: "Jiangquhai"、 番号:123 } 削除a.author;このコード行も削除書き込むことができる// [ "著者"] のdocument.write(a.author); //a.authorの値それが削除されているとしてそれは、定義されていない
オブジェクトは、プロパティが含まれているかどうかを検出:中
= {VAR 0 X :. 1 } のdocument.write(Oで"X"); //戻り真のX 0は、プロパティである のdocument.write(Oで"Y") ; // 戻り偽YプロパティOしない
hasOwnPropertyを()は、オブジェクトのプロパティを含むか否かを検出します
O = {VAR X :. 1 } のdocument.write(o.hasOwnProperty( "X")); //リターンの"X"という名前のプロパティを含む真O (o.hasOwnProperty( "Y")のdocument.writeを )。 // falseを返すoはの「Y」という名前の属性が含まれていない
特性の属性を
書き込み可能:書き込み可能です。
可算:可算です。
設定可能:設定するかどうか。
クロージャ
function outer() { var a = '变量1' var inner = function () { console.info(a) } return inner // inner 就是一个闭包函数,因为他能够访问到outer函数的作用域 }
クロージャは三つの特徴があります。
- ネストされた関数をする機能です。
- 内部関数は外部パラメータと変数を参照することができます。
- パラメータと変数は、ガベージコレクションのメカニズムではありません。
メリットの閉鎖:
- 私たちは、メモリ内の変数の長期保存をしたいです。
- グローバル変数の回避汚染。
- プライベートメンバーの存在
クロージャパッケージ短所:
- 永久メモリ、メモリ使用量が増加します。ガベージコレクションのメカニズムを再利用することはできません。
- 不適切に使用すると、メモリリークが発生する可能性があります。