それらは次第に身につけていくJavaScript('argments')
1285 ワード
JavaScriptには隠し属性がパラメータにアクセスできます.パラメータも変更できます.それはアルグメンントです.
argmentsも、一般モード、厳格モードなど、異なる場合の実行状況に分けられます.いくつかの異なる例について説明します.(本編の実質も一編の続きを含めて)
一.argmentsによる変形
注:上のコードは実行関数を即座に呼び出します.
二.参しない時は、use stricatの下で変形します.
ここには二つのポイントがあります.
1.パラメータが伝わらない場合はデフォルトはundefinedで、argmentsによって手動で修正してもundefinedです.
2.厳格なモードにおいて、argmentsがパラメータの静的なコピーとなっている場合は、パラメータに影響を与えないようにします.
三.パラメータを対象として、use stricatで変形
argmentsも、一般モード、厳格モードなど、異なる場合の実行状況に分けられます.いくつかの異なる例について説明します.(本編の実質も一編の続きを含めて)
一.argmentsによる変形
!function(a){
arguments[0]=100; // 1
console.log(a); // 100
}(1);
argmentsは、疑似配列であり、すなわち、下付きでパラメータにアクセスします.注:上のコードは実行関数を即座に呼び出します.
!function(){}();
これはただ一つの書き方です.すぐに実行関数を呼び出して、他の多くの書き方があります. 二.参しない時は、use stricatの下で変形します.
!function(a){
'use strict';
arguments[0]=100;
console.log(a); // undefined
}(); //
上記のコードの中で、私達は見られます.まだ伝わっていません.ここには二つのポイントがあります.
1.パラメータが伝わらない場合はデフォルトはundefinedで、argmentsによって手動で修正してもundefinedです.
2.厳格なモードにおいて、argmentsがパラメータの静的なコピーとなっている場合は、パラメータに影響を与えないようにします.
三.パラメータを対象として、use stricatで変形
!function(a){
'use strict';
arguments[0].x =100;
console.log(a.x); //100
}({x:1});
パラメータが対象(共有転送)の場合は、アーグメンツを通じて、use stricatで変更されても有効です.