JavaScript 関数の使用方法 JavaScript 関数のプロパティとメソッドの概要
JavaScript関数とは何ですか? JavaScript の関数は実際にはオブジェクトです。各関数は Function コンストラクターのインスタンスであり、Function コンストラクターによって定義されたプロパティとメソッドを持っているためです。 JavaScript 関数のプロパティとメソッドを詳しく見てみましょう。
関数名は実際には関数オブジェクトへのポインターです。次のコードを参照してください:
function sum(a,b) { return a + b; } // 相当于把sum的引用地址传递给sum2。 // 注意:不带圆括号的函数名是访问函数指针,而非调用函数 var sum2 = sum; sum2(1,2) // 3 sum = null; sum(2,3) // undefined // 将sum的内存回收,即sum的引用地址变了 sum2(2,3) //5 // 但sum2 还是指向原来的内存地址
上記のコードは、関数名が実際には関数オブジェクトへのポインターであるという問題を示しています。上記の問題を理解した後、次の分析を実行できます:
1. オーバーロードなし
上記を理解した後、オーバーロードは関数変数の参照値を再変更することと同じであるため、前の分析ははい、わかりやすいです。
2. 関数のプロモーション
は実際には変数のプロモーションに似ています。つまり、宣言関数と式定義関数の違いは非常に単純です
3. 値としての関数
関数名自体は変数であるため、値として渡すことができます。以下に、良い例と良いプログラミングのアイデアを示します。
function getSomeFunction(fn,arg) { return fn(arg); } function add(num) { return num + 10; } function getGreeting(name) { return `Hello ${name}`; } getSomeFunction(add,5) // 15 getSomeFunction(getGreeting,'andy') // Hello andy
別の関数から関数を返すこともできます。たとえば、配列のソートメソッドや反復メソッドを使用する場合、パラメータとして渡されるのは関数変数であるため、このパラメータを「外部関数の戻り関数」メソッドを使用して記述できるという利点があります。返された関数は、計算のために「特に指定したい」パラメーターを渡すことができます。たとえば、
// 规定利用哪个属性进行排序,如果不填则代表数组从大到小排序 function sortArgFuntion(compareProperty) { //compareProperty是上文中特定想要规定的参数 return function (val1, val2) { if (compareProperty === undefined) { // 如果排序的是数组的值,则用常规的方法 if (val1 > val2) { return 1; } else if (val1 < val2) { return -1; } else { return 0; } } else { // 如果排序的是对象的属性则用该方法 if (val1[compareProperty] > val2[compareProperty]) { return 1; } else if (val1[compareProperty] < val2[compareProperty]) { return -1; } else { return 0; } } } } var data = [{ name: 'andy', age: 25 }, { name: 'Nf', age: 29 }] data.sort(sortArgFuntion('name'))
sort 関数のパラメーターは、配列を並べ替えるのに使用される関数です。そして、関数のパラメーターを取り出すと、この関数をより直観的に、より高い再利用性で記述して、必要な効果を実現することができます。同時に、関数 return 関数の本質と独自性を注意深く熟考し、理解する必要があります
4. 関数の内部プロパティ
関数内には 2 つの特別な変数があります
-
引数
この
引数
は配列のようなオブジェクトです 配列のようなオブジェクトとは何ですか?配列形式のアクセスはシリアル番号 (obj[1] など) を介して実行でき、長さ属性があります (オブジェクトの長さ属性を定義しない場合、クラス配列には長さしかありません)。インデックス値と長さ、および配列のさまざまなメソッドがないため、配列のような配列メソッドを呼び出したい場合は、それを実現するために Array.prototype.method.call
を使用する必要があります。 Array.prototype.method.call
来实现
this
this是JavaScript非常容易混淆和复杂的一个知识点,他代表什么完全取决于调用位置,我会但列出一篇总结this。e.g:
window.color = 'red'; var o = {color:"blue"}; function sayColor() { console.log(this.color) } sayColor(); // red 因为调用位置是全局 o.sayColor = sayColor; o.sayColor(); // blue 因为调用位置是o的对象里
从上面例子中我们要知道,函数名字仅仅是一个指针,虽然执行环境不同,全局的sayColor()和函数中的o.sayColor()指向的都是同一个函数
caller
es5新加的,他返回当前函数(必须是函数,对象不行)的调用环境,如果调用环境是全局,则返回null。有两种用法,一种是函数名加caller,一种是arguments.callee.caller
function outer() { console.log(outer.caller); //null inner(); }; function inner() { console.log(inner.caller); // outer里的代码 }
5、函数的属性和方法
因为函数也是对象,所以也有属性和方法;函数里面有length和prototype两个属性,length指传入形参的个数function add(num1,num2) {} console.log(add.length) // 2
これ
これは、JavaScriptでは非常にわかりにくく複雑な知識点ですが、呼び出し場所に完全に依存するものを表しますが、これを要約します。例:var color = "red"; var o = {color:"blue"}; function sayColor() { alert(this.color) } sayColor(); // red sayColor.call(this); // red sayColor.call(window); // red sayColor.call(o); // blue
caller
es5で新たに追加され、現在の関数の呼び出し環境を返します(オブジェクトではなく関数である必要があります)。呼び出し環境がグローバルの場合、nullが返されます。使用方法は 2 つあり、1 つは関数名と呼び出し元、もう 1 つは argument.callee.caller5. 関数の属性とメソッド
関数はオブジェクトでもあるため、内部に属性とメソッドもあります。関数には、長さとプロトタイプの 2 つの属性があります。長さは、function add(num1,num2) {} console.log(add.length) // 2
propertype
参照型の場合、propertytype はすべてのインスタンス メソッドが保存される実際の場所です。カスタム参照型の作成と継承の実装において、その役割と鍵 (重要な点がまだ理解されていないことが多い。特に継承という言葉:))
es5 では、プロパティ型は列挙可能ではないため、トラバースすることはできません。 2 つのパラメータ、最初のパラメータは実行するスコープ、2 番目のパラメータ apply は配列または引数オブジェクトで渡され、call は各値で渡されます。それ以外の場合は、同一。これは apply と call の役割を説明するための例の 1 つです: var color = "red";
var o = {color:"blue"};
function sayColor() {
alert(this.color)
}
o.sayColor = sayColor;
o.sayColor(); //blue
var color = "red"; var obj = {color:"blue"} function sayColor() { console.log(this.color); } var bindSayColor = sayColor.bind(obj); bindSayColor(); // blue
以上がJavaScript 関数の使用方法 JavaScript 関数のプロパティとメソッドの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

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

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

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

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

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript は Web 開発で広く使用されているプログラミング言語であり、WebSocket はリアルタイム通信に使用されるネットワーク プロトコルです。 2 つの強力な機能を組み合わせることで、効率的なリアルタイム画像処理システムを構築できます。この記事では、JavaScript と WebSocket を使用してこのシステムを実装する方法と、具体的なコード例を紹介します。まず、リアルタイム画像処理システムの要件と目標を明確にする必要があります。リアルタイムの画像データを収集できるカメラ デバイスがあるとします。
