this的用法详解

js中this的用法比较杂乱,这里总结一下。

一:全局作用域中this指向window对象。

var number = 10;

this.number == window.number    // true

二:在函数内部被调用。

1)“use strict” 模式下返回 undefined;

2)非 "use strict" 模式下 返回 window 对象,无论是被嵌套多少层,在function内部的this,都指向window对象。

三:在实例对象中被调用,指向离它最近的那个对象。

var obj = {

    name : "obj",

    say : function(){

          console.log(this.name);

    }

}

上面例子中,离this最近的对象实例是obj,所以this指向obj。

var obj = {

name : "obj",

kid : {

name : "kid",

say : function(){

console.log(this.name);

}

}

}

上面的this指向obj.kid。

四:构造函数中的this指向new出来的实例对象。

五:DOM中的事件绑定,this指向绑定的DOM元素。

DOM对象绑定是一个具体情况,普遍情况可以解释为:在回调函数中的this,指向调用这个回调函数的对象,比如window.setTimeout中的this指向window。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,579评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,413评论 2 17
  • ECMAScript关键字 delete do else finally function in instance...
    doudou2阅读 3,996评论 0 0
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock阅读 8,688评论 2 36
  • [导语]星座屋面相小分析,我们都知道,额头为天仓,三停中的上停,如果额头有明显的竖纹,那面相含义又是什么呢?下面小...
    沉梦听阅读 9,182评论 0 0

友情链接更多精彩内容