您的位置:首页 > 其它

this的使用

2016-04-11 18:55 477 查看
1.call
 var obj={name:"4"};

 var fn1=function(){console.log(this)};

   function fn2(){console.log(this)};

  fn1.call(obj) 
=>Object {name: "4"}

  fn2.call(obj) 
=>Object {name: "4"} 
2.
var myObject = {

    na:"bar",

    func: function() {

             var self = this;

            console.log(" " + this.na);

           (function (){

             console.log("inner func: this.na= " + this.na);

             console.log("inner func: self.na= " + self.na);

      }());

   }

};
na="window na";

myObject.func();

=> bar

=> inner func: this.na= window na

=> inner func: self.na= bar

-------------------------------------------
var o={
       m:function(){
            var that=this;
           console.log(that);
           a();
           function a(){
               console.log(this)
           }
    }
}

o.m();

=>Object {}

=>Window {external: Object, chrome: Object, document: document, user_data: Object, is_option: false…}

this上下文只存在两种语义:
一种是被当作方法调用,this指向调用它的对象,(比如上面的that);一种是作为函数调用,指向Global对象,它没有作用域的限制,a由于是作为函数被调用,所以它指向window。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: