js関数でパラメータを値で渡します

小云云
リリース: 2018-01-18 14:43:05
オリジナル
1797 人が閲覧しました

この記事では主に、js 関数で値によってパラメーターを渡す例を紹介します。これは非常に優れた参考値です。皆さんのお役に立てれば幸いです。みんな。

js で関数パラメータを渡す方法は値渡しです。通常の状況では、関数パラメータの値を変更しても関数の外部の変数には影響しません。例:

'use strict';
var list = [1, 2, 3];
list.forEach(function(item) {
 item ++;
});
console.log(list); // [ 1, 2, 3 ]
ログイン後にコピー

これは、js 関数がパラメーターを受け取ると、パラメーターの値と等しいコピー変数が生成されるためです。次のように js がどのように実行されるかを分析できます。パラメータにはオブジェクトが渡されます 毛織物?

'use strict';
var list = [1, 2, 3];
list.forEach(function(item, i) {
 // 第一个item是副本,第二个item是数组元素list[i]
 var item = item;
 // 副本item++
 item ++;
 // 打印的是副本的值
 console.log(item); // 2, 3, 4
});
// 原数组不会改变
console.log(list); // [ 1, 2, 3 ]
ログイン後にコピー

関数の外部変数の値が実際には関数内で変更されていることがわかりました。では、これはなぜでしょうか。

js がこのコードをどのように実行するかを分析してみましょう

'use strict';var list = [{a: 1, b: 2}];
list.forEach(function(item) {
 item.a ++;
});
console.log(list); // [ { a: 2, b: 2 } ]
ログイン後にコピー

それでは、なぜこれが起こるのでしょうか?

js のオブジェクトは参照型であるため、var item = item は list[i] のアドレスを item に代入することと同じであり、どちらも元のオブジェクトのアドレスを指しているため、値はどちらかによって変更されます。実際に、それらが指すオブジェクトを変更します。例では元のオブジェクトの値を item.a++ メソッドで変更しているので、最終的には [ { a: 2, b: 2 } ] が出力されるはずです。

関連する推奨事項:


HTMLでページがジャンプするときにパラメータを渡す方法

phpリファレンス定義とパラメータを渡す使用例の詳細な説明

php関数の基本構文の詳細な説明とパラメータの使用例パラメータを渡す

以上がjs関数でパラメータを値で渡しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート