オブジェクトのトラバーサル
- 以下のために...中:オブジェクトの属性値をループします。
アレイトラバーサル
配列の添字を横断することによって、以下のようにして得られた値。
- forEachの():すべて破棄され、戻り値とコールバック関数を介してアレイ内の値。
- (コールバック)をマップ:マップは、順番に、アレイ内の要素のタイプに提供されるコールバックメソッドを呼び出し、そして配列から構造結果の新しいタイプであろう
- すべての():コールバック関数がfalseを返すまで、それが実行されます。
- いくつかの():コールバック関数がtrueを返すまで実行します。
次の直接的な方法は、値の配列を横断します。
-
以下のための...の:直接法の反復値はES6を提供
-
Object.assign( sourceobj, targetobj)
オブジェクトその実装浅いコピー:
1.直接変数(例:2)の変化が他のいずれかの値に影響を及ぼさない、請求コピー互いに独立して対象物の値は、ソースオブジェクトとターゲットオブジェクトの値、。
前記基準値がコピーされ(通常、オブジェクト、機能及びアレイを含む)オブジェクトの属性値
この裁判官のルール
これは、各関数コールが結合している場合、この値は、関数呼び出しの位置に完全に依存しています。
ランニングのこの結合機能は、あなたがこの関数を呼び出し、直接位置を見つける必要があるかどうかを判断するには。発見後、この結合オブジェクトの次の4つのルールを決定するために適用することができます。
1.新しいコールがありますか?新しく作成されたオブジェクトにバインドされました。
コールまたは適用(またはバインド)によって呼び出され、2?指定されたオブジェクトにバインドされました。
3.コンテキストオブジェクトによって呼び出されますか?コンテキストオブジェクトにバインドされました。
4.デフォルト:strictモードで不定に結合し、そうでなければ、グローバルオブジェクト(ウィンドウ)に結合しました。
注:中ES6
箭头函数不会使用以上四条绑定规则,而是根据当前语法作用域来决定this, 即箭头函数会继承外层函数调用的this绑定
、このselt = this
メカニズムと同じ。
例:
新しい新しいバインディング:
表示結合、コール/適用/バインド
暗黙の結合、コンテキストバインド
上記の他のいくつかのバインディング、デフォルトのバインディングに加えて:
- 未定義:変数(割り当てられた)初期値が定義されていない宣言し、正式なパラメータや実際のパラメータがありません。それには、JavaScriptの基本的なタイプの一つです。
- あなたが関数を指定した場合、戻り値にreturn文を使用していない、それはコールの後、未定義の値を返します。
- ナル:オブジェクトの値が特に設定されていません。それには、JavaScriptの基本的なタイプの一つです。
拡張知識
:他の言語のクラス
:クラスの知人
の例として、建物に:
- クラス:建築設計
- 例:実際の建物
- コンストラクタ:クラス名と同じ、クラスは、彼によってインスタンス化
new 类名(参数)
建設労働者として行動します。
クラス継承は:
キーワード拡張により、サブクラスは、親クラスの基本的なプロパティを継承します。多型技術は、サブクラスは親クラス、または親クラスの直接の使用を無効にすることができます。
伝統的なクラス指向言語、クラスのコンストラクタ。しかし、JavaScriptでは逆に、「クラス」はコンストラクタ(このタイプの参照Foo.prototype ...に類似する)所属します。
クラスはインターフェイス、モジュール、簡単な方法です。
参考書上記/文書:
「あなたは、JavaScriptを知らない」
MDNを