関数式
(関数(ウィンドウ、U){ // 未定義ローパス アラート(「AS」); })(ウィンドウ); // すぐに実行中にグローバル変数を渡す必要なしに実行グローバル変数の伝達関数式無名関数を呼び出すための理由外時間のかかるを求めてスキップ
ファンクションキーは、3つのオブジェクト、その中で実行される
AOのスコープチェーン形成
引数は、鎖を形成しない
この形式のプロトタイプチェーン
引数
(関数(ウィンドウ、U){ VARの和= 0 ; のための(VAR iはarguments.lengthをを<; I ++は、I = 2 ){ 和 + =引数[I]; // 不定参数 } にconsole.log(和); } )(ウィンドウ、不定、 1,2,1,1,2,12,1,1,1,1,1)。
独自の機能として、arguments.calleeの
console.log((関数(ウィンドウ、U){ 場合(U> 1 ){ 戻り arguments.calleeの)(ウィンドウ、U-1(+ Uを); } そうでなければ{ リターン 1 ; } })(ウィンドウ、 100));
2つの違いを区別に注意してください
// 文法//使用ES6 "厳格を使用する" VAR。11 =年齢、 機能 テスト(){ この .age 12 =である; } VARの S = 新しい新 ;試験()// このとき、これがnullの場合はnullと比較ウィンドウ // この新しい機能には、内で動作しなければならないか、グローバル変数汚染う にconsole.log(年齢)。
結果
// 文法//使用ES6 "厳格を使用する" VAR。11 =年齢、 機能 テスト(){ この .age 12 =である; } テスト(); // この場合ヌルウィンドウと比較した場合、これがnull // 関数この操作で内の新しいあるべきか、グローバル変数汚染う にconsole.log(年齢)。
結果
デフォルトを呼び出すと、該当するES6構文でないときは、グローバルを汚染しないであろう、この新しいオブジェクトを上から作成された場合、これはウィンドウの汚染グローバル変数変数である。この時点でnullを必要とし、直接見ることができます
VaRの名前= "webcyh" 。 機能テスト(){ にconsole.log(この .nameの+ "笑" )。 } VARの犬= {名: "犬" }。 VaRの猫= {名: "猫" }。 dog.intro = 試験。 dog.intro(); cat.intro = dog.intro。 cat.intro(); (dog.intro =試験)();
コンストラクタ
関数キャット(名){ この .nameの= 名; } VARの C = 新しい新しい猫(); / * 生成キャビテーションオブジェクト{}新しい新規 この方法が指示されている}、{ {} .nameの=名; / *