码迷,mamicode.com
首页 > 其他好文 > 详细

关于 this 和 prototype 的理解

时间:2016-05-23 21:17:42      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

1:this 的理解比较好的书是 《Javascript语言精粹》

  平时我们全局写 var a = 1, 其实就是 window.a = 1;

  var f = function(){}, 其实就是 window.f = function(){}

  当执行 f(), 相当于执行 window.f(), 那么f 里的 this 是调用它的对象, 即window

  var obj = {f: function(){} }, 当执行 obj.f(); 那么调用 f 的是 obj对象, 则 f 里的 this 指向 obj

 

  看下面的代码,当执行 obj.f() 时, f 里面的 this 指向obj, 但是 func 里面的 this 不是指向obj, 这是 语言设计上的一个错误;

  从另一个层面上说,在 obj.f 函数里面是 没有对象调用func,这个时候我们默认定义它的 this 是 window

var obj = {
    a: 1,
    f: function(){
        var func = function(){
            console.log(this.a);
        }
        func();
    }
}

 

  总结: 

  this 的指向就是谁调用这个函数, this 就是指向谁。

  比如 obj.f(), this 指向 obj;  obj.obj2.obj3.f(), this 指向 obj.obj2.obj3。

  当找不出调用这个函数的对象时, this 指向 window.

关于 this 和 prototype 的理解

标签:

原文地址:http://www.cnblogs.com/zhengming2016/p/5521151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!