javascriptのthisの使用

2318 ワード

JavaScriptの中でthisは対象の中で引用する4つの形式です.コードのデモンストレーションスタンプはここです.
1.任意のプレフィックスの関数がない場合、thisはトップレベルのオブジェクトまたはグローバルオブジェクトを指し、ブラウザの中はwindow(nodejsの中でglobal)です.
        console.log(this); //          
 
2.メソッド呼び出し時、thisは方法のあるオブジェクトを指します.
      var robot = {
            name:"javascript",
            say:function()
               {
                   console.log(this.name)
               }
     };
     robot.say(); //   javascript
3.コンストラクタで、新たに生成された例を指す.
        function Robot(name)
        {
        this.name = name;
        this.say = function(){
                  console.log(this.name)
               }
        }
       var robot= new Robot('java');
       robot.say(); //  'Java'
4.apply/call呼び出し時、apply/callメソッドの最初のパラメータを指します.
      var robot_1 = {name:'c'}
      var robot_2 = {name:'c#'}

      function say(){
          console.log(this.name)
      }
      say.call(robot_1)   //  'c'
      say.call(robot_2)   //  'c#'
関数内のthisの使用
1.メソッド内のthisは、呼び出されたオブジェクト2を指します.関数は、プレフィックスなしの直接呼び出しであり、thisは、グローバルオブジェクト3を指します.関数のappyまたはcall方法を呼び出します.
applyとcallの機能は、強制関数内のthisがあるオブジェクトを指す場合、apply/callの最初のパラメータに参照されます.
(教程コード9行目にエラーがありました.以下のように修正します.)
var robot_1 ={
                name:"cup",
                say:function(){
                        console.log(this.name)
                        }
              };
var robot_2 ={ name:"bower" };

robot_1.say() //     cup

robot_1.say.apply(robot_2)            //      bower
//  apply  robot_1.say  。    this     robot_2

robot_1.say.call(robot_2)                //      bower
//  call  robot_1.say  。    this     robot_2
Java中のthis
Javaにもthisというキーワードがありますが、JavaScriptのthisとはどのような違いがありますか?
Java中のthisの使用範囲とコードのデモンストレーション
クラスの方法定義で使用されるthisキーワードは、この方法のオブジェクトを呼び出す参照を表します.
2、現在の使用方法の対象が誰かを指摘しなければならない場合、キーワードをthisとします.
3、時々thisを使用して、メソッドのメンバー変数とパラメータの名前を処理することができます.
4、thisは変数と見なすことができ、その値は現在のオブジェクトの参照です.
5、Javaの中でthisは一般的に方法の中で現れて、方法が呼び出されていない時、thisがどの具体的な対象を指すかは分かりません.したがって、あるオブジェクトがthisのメソッドを呼び出すと、thisはこの方法を呼び出すオブジェクトを指します.
6.thisは非静的な場合のみ使用できます.
結び目
JavaScriptとJavaは2つの異なる言語であり、必然的な連絡はなく、JavaScriptの中のthisキーワードの使用はより柔軟で変化に富む.