ホームページ  >  記事  >  ウェブフロントエンド  >  これは JavaScript 関数で何を指しているのでしょうか?

これは JavaScript 関数で何を指しているのでしょうか?

清浅
清浅オリジナル
2018-11-27 10:46:432440ブラウズ

今日は、JavaScript の重要な知識ポイントを共有します。これは一定の参考価値があり、皆さんの学習に役立つことを願っています。

this キーワードを学習するときに、関数内で何を指すのか、どのように使用するのかがよくわかりません。今回は、このキーワードについて詳しく説明します。知識

[推奨コース:JavaScript チュートリアル]

コンテキストとこのキーワード

JavaScript では、関数には独自の実行コンテキストがあります。ここで特に注意してください。関数の実行コンテキストは、関数がどのように宣言されるか、関数が何を行うかではなく、どのように実行されるかということです。コードで呼び出すには、この実行コンテキストを呼び出すときにこれを使用します。関数内からこれにアクセスすると、その実行コンテキストが実際にアクセスされます。

関数の呼び出し方法とこれ

コンテキストは関数の呼び出し方法に依存します。コンテキストの関数は 4 つの異なる方法で呼び出すことができます。したがって、この異なるポインターにも 4 つのタイプがあります。

1. 基本的な関数呼び出し

2. コンテキスト オブジェクトを使用して関数を呼び出すこと。暗黙的なバインディングとも呼ばれます。

3. call() を使用するか、関数 apply() (明示的バインディングとも呼ばれます) を呼び出します。

4.bind() メソッドによるバインド

基本的な関数呼び出し

基本的な関数呼び出しは、関数を呼び出す最も簡単な方法です。

例:

<script type="text/javascript">
	var name="张三";
	function student(){
		console.log(this.name);
	}
	student();
</script>

Image 1.jpg

この例では、student() がグローバル スコープから関数を呼び出していることがわかります。したがって、ここではグローバル スコープを指します。出力結果は「"Zhang San"」です。

暗黙的なバインディング

関数がオブジェクトに「含まれている」場合、関数の this と呼ばれます。 is implicitly binding このオブジェクトにバインドされています

<script type="text/javascript">
var student={
	name:"张三",
	obj:function(){
		console.log(this.name)
	}
}
student.obj();
	</script>

Image 2.jpg

obj 関数はオブジェクトの中に配置されていますが、オブジェクトの内部で定義されているだけで、外部と変わりません。オブジェクト。暗黙的なバインディングでは、obj は引き続きこの

Display binding

call() または apply() を使用して Student オブジェクトのプロパティにアクセスできます。メソッドは関数を呼び出し、その実行コンテキストは明示的にオブジェクトにバインドされます。call および apply はこのポインターを変更できます。

例: call () または apply() が使用されていない場合

<script type="text/javascript">
var name="张三";
var obj = {
	name:"李四",
	fun:function(){
	console.log(this.name);}}
obj.fun();
</script>

Image 3.jpg

call() を使用して、このポイントを window

<script type="text/javascript">
var name="张三";
var obj = {
name:"李四",
fun:function(){
      onsole.log(this.name);}}
       obj.fun.call(window);
</script>

Image 1.jpg


#bind() バインディング

bind() は関数を作成します。関数本体内のこのオブジェクトの値は、bind() に渡される最初のパラメーターの値にバインドされます。ただし、bind は関数を実行しません。関数

<script type="text/javascript">
var a = {
	b : function(){
		var func = function(){
			console.log(this.c);
		}
		func.bind(this)();
	},
	c : &#39;Hello!&#39;
}
a.b();
	</script>


は、bind メソッドを通じて c オブジェクトのコンテンツを指します。

Image 4.jpg要約: 上記はこの記事の全内容です。上記の記事から、これを呼び出す人が誰を指すのかがわかります。 call()、apply()、bind() メソッドは this のポインタを変更できます。



以上がこれは JavaScript 関数で何を指しているのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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