ホームページ ウェブフロントエンド jsチュートリアル JavaScript関数のパラメータの受け渡し方法を詳しく解説

JavaScript関数のパラメータの受け渡し方法を詳しく解説

Mar 22, 2017 pm 02:54 PM

この記事では、JavaScriptで関数のパラメータを渡す方法を中心に紹介しますが、参考値が高いです。以下のエディターで見てみましょう

JavaScript は、変数オブジェクトを使用して変数の有効期間を追跡します。基本型の値は変数オブジェクトに直接保存されますが、参照型の値はメモリ内の実際のオブジェクトの保存場所を指すポインターとして変数オブジェクトに保存されます。

基本型の値の転送

基本型の値をパラメーターに渡すと、渡された値はローカル変数 (名前付きパラメーター、または引数オブジェクト内の要素) にコピーされます。

function addOne (num) {
 num++;
 return num;
}
var count = 1;
var result = addOne(count);
console.log(count); //1
console.log(result); //2
ログイン後にコピー

上記の例では、functionnumのパラメータに変数countの値を渡して関数内で使用していますが、このとき変数countとパラメータnumの値は同様に、これらは 2 つの独立した変数であるため、関数内でパラメーター num の値を変更しても、関数外の変数 count の値には影響しません。

つまり、JavaScript の関数の基本的な型値パラメーターは値によって渡されます。

参照型の値の受け渡し

function setName (obj) {
 obj.name = 'Nicholas';
}
var person = new Object();
setName(person);
console.log(person.name); //'Nicholas'
ログイン後にコピー

上記の例では、関数のパラメータobjに変数personの値を渡していますが、このとき関数内のパラメータobjにname属性が追加されています。この関数はパラメータ obj の関数を作成し、外部変数 person は name 属性も取得します。結果からすると、JavaScriptにおける関数の参照型の値パラメータは参照渡しされているようです。

しかし、そうではありません。変数 person の値は参照型の値であるため、変数 object 内のその値はメモリ上の実際のオブジェクトのアドレス (またはポインタ) とみなすことができます。パラメータを渡した後は、パラメータ obj の値もメモリ内のオブジェクトのアドレスになります。したがって、関数内のパラメータ obj の値によって参照されるオブジェクトは、操作変数 person の値によって参照されるオブジェクトと同等になります。

function setName (obj) {
 obj.name = 'Nicholas';
 obj = new Object();
 obj.name = 'Greg';
 return obj;
}
var person = new Object();
var result = setName(person);
console.log(person.name); //'Nicholas'
console.log(result.name); //'Greg'
ログイン後にコピー

パラメーターが参照によって渡される場合、上記の例では、関数はパラメーター obj の値によって参照されるオブジェクトを変更すると、対応する変数 person の値によって参照されるオブジェクトも変更されます。関数の記述方法を変更すると、値によるパラメーターの受け渡しを理解するのにさらに役立つ場合があります。

function setName () {
 var obj = arguments[0];
 obj.name = 'Nicholas';
 obj = new Object();
 obj.name = 'Greg';
 return obj;
}
ログイン後にコピー

変数 person とパラメータ obj の値はメモリ内の同じオブジェクトのアドレスですが、これらは 2 つの独立した変数です。関数内のパラメータ obj の値を変更してメモリ内の別のオブジェクトを指すようにしても、変数 person の値は変更されず、元のオブジェクトを指し続けます。

つまり、JavaScript の関数の参照型の値パラメーターは値によって渡されます。

結論

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

C++ 関数のパラメータ受け渡しメソッドとスレッド セーフの関係 C++ 関数のパラメータ受け渡しメソッドとスレッド セーフの関係 Apr 12, 2024 pm 12:09 PM

関数パラメータの受け渡し方法とスレッド セーフ: 値の受け渡し: 元の値に影響を与えることなくパラメータのコピーを作成します。これは通常はスレッド セーフです。参照渡し: アドレスを渡し、元の値の変更を許可します。通常はスレッドセーフではありません。ポインターの受け渡し: アドレスへのポインターの受け渡しは参照による受け渡しに似ており、通常はスレッドセーフではありません。マルチスレッド プログラムでは、参照およびポインタの受け渡しは注意して使用する必要があり、データ競合を防ぐための措置を講じる必要があります。

C++関数パラメータの詳細解説:実装方法、パラメータ不定渡しのメリット・デメリット C++関数パラメータの詳細解説:実装方法、パラメータ不定渡しのメリット・デメリット Apr 28, 2024 am 09:48 AM

C++ の不定パラメータの受け渡し: ... 演算子によって実装され、任意の数の追加パラメータを受け入れます。利点には、柔軟性、スケーラビリティ、コードの簡素化が含まれます。欠点には、パフォーマンスのオーバーヘッド、デバッグの困難、および型の安全性が含まれます。一般的な実践例には、va_list を使用して可変数のパラメーターを処理する printf() および std::cout が含まれます。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScript で HTTP ステータス コードを簡単に取得する方法 JavaScript で HTTP ステータス コードを簡単に取得する方法 Jan 05, 2024 pm 01:37 PM

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが

C++関数パラメータの詳細解説:送信機構の本質と注意点 C++関数パラメータの詳細解説:送信機構の本質と注意点 Apr 27, 2024 pm 12:00 PM

C++ で関数パラメータを渡すには、値による呼び出し (実際のパラメータに影響を与えない) と参照による呼び出し (実際のパラメータに影響を与える) の 2 つの方法があります。パラメータの受け渡しは参照またはポインタを渡すことによって実現され、関数はパラメータ参照またはポインタが指す変数を変更することによって呼び出し元に値を渡すことができます。使用時の注意点: 送信パラメータは明確に宣言する必要があり、実際のパラメータは 1 つだけ対応でき、関数内のローカル変数を指すことはできません。ポインタを渡して呼び出す場合は、ワイルド ポインタを避けるように注意してください。

PHP関数のパラメータの型とは何ですか? PHP関数のパラメータの型とは何ですか? Apr 10, 2024 pm 04:21 PM

PHP 関数のパラメーターの型には、スカラー型 (整数、浮動小数点数、文字列、ブール値、null 値)、複合型 (配列、オブジェクト)、特殊型 (コールバック関数、変数パラメーター) が含まれます。関数は、さまざまな型のパラメーターを自動的に変換できますが、偶発的な変換を防ぎ、パラメーターの正確性を確保するために、型宣言を通じて特定の型を強制することもできます。

See all articles