ホームページ  >  記事  >  ウェブフロントエンド  >  js での this のポインティングの問題に関するディスカッション

js での this のポインティングの問題に関するディスカッション

小云云
小云云オリジナル
2018-03-16 17:09:091247ブラウズ

この記事では、主に js における this のポインティングの問題について説明します。 this キーワードは、現在実行されているメソッドのオブジェクトを表します。現在のメソッドがない場合は、グローバル変数を参照します。つまり、メソッドを呼び出すオブジェクトの参照を表します。

1. グローバル スコープまたは通常の関数内の this は、グローバル オブジェクト ウィンドウを指します。

//直接打印
    console.log(this) //window
//function声明函数
    function bar () {conso
le.log(this)}bar() //window
//function声明函数赋给变量
    var bar = function () {console.log(this)}bar() //window
//自执行函数
    (function () {console.log(this)})(); //window

2. メソッド呼び出しでこれを呼び出すのは誰ですか? 例

//对象方法调用
    var person = {run: function () {console.log(this)}}person.run()// person
//事件绑定
    var btn = document.querySelector("button")btn.onclick = function () {console.log(this) // btn}
//事件监听
    var btn = document.querySelector("button")btn.addEventListener('click', function () {console.log(this) //btn})
//jquery的ajax
    $.ajax({ self: this,    type:"get",    url: url,    async:true,    success: function (res) {console.log(this)
 // this指向传入$.ajxa()中的对象
    console.log(self) // window  } }); 
//这里说明以下,将代码简写为$.ajax(obj) ,this指向obj,在obj中this指向window,因为在在success方法中,独享obj调用自己,所以this指向obj
このポインタを変更します。 関数自体は特別な型であり、ほとんどの人はこれが誰を指すのかを決定することはできません。関数が定義されたときのみ、実際にこれが誰を指すのかを決定できます。 、これは最終的に彼を呼び出した関数を指します。

関連する推奨事項:

PHP での $this とアクセス修飾子の使用法の詳細な説明

JavaScript で指定された this を変更するためのさまざまなメソッド

このルールと JavaScript でのこのオブジェクトの使用例

以上がjs での this のポインティングの問題に関するディスカッションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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