美文网首页简web
理解js中的this

理解js中的this

作者: 吴豆腐 | 来源:发表于2018-01-29 10:25 被阅读0次

js中的this,取决于函数的调用方式。

在作为普通函数调用时(类似:fn()),this指向全局或者undefined(严格模式);

在作为对象方法调用时,this指向该方法(创建对象或者构造函数都一致),比如obj.foo()此时foo里面的this指向obj,但是let foo = obj.foo; foo()里面的this又指向全局或者undefined了。此时的foo是被作为普通函数调用,而不再是对象方法;

使用call,apply,bind可以改变函数的this,但是不会改变函数的作用链,即闭包还是闭包,普通函数还是普通函数;

箭头函数没有this属性,里面的this,访问的是创建时封闭词法上下文中的this,会形成闭包

作为事件绑定时,addEventListner(),this将指向绑定事件的元素

作为一个内联事件处理函数,其最外层this指向该元素,即" "中, this === el,但是里面如果是函数,函数里面的this又取决于函数的调用方式了。

相关文章

  • 理解js中的this

    js中的this,取决于函数的调用方式。 在作为普通函数调用时(类似:fn()),this指向全局或者undefi...

  • 理解js中的this

    javascript中的this……简直了!仿佛每次见到都会变个样儿~上下文不同,是否严格模式,等等,this值都...

  • JavaScript中的prototype理解

    JS中的prototype理解

  • 对JS中this的理解

    开始 在JS中,this的指向是由函数调用时的位置来决定的。那函数执行时是怎样决定this的绑定对象的呢?首先我们...

  • 理解js中的Error

    通过Error构造器我们可以创建一个错误对象,当程序运行出错时,Error的实例对象就会被抛出。 语法 messa...

  • 理解js中的[[Prototype]]

    在面向对象设计中,最多被使用的就是类了。但是js中没有类的概念,也就没有继承等一系列相应的操作。然后会有一种仿类的...

  • JS 原型中的this理解

    前面讲过了,在全局作用域下声明的函数或者变量,默认是window这个对象的属性了,前面再议函数时,说过,上下文这个...

  • 理解JS中的原型

    动态语言和静态语言有很大的不同,比如在C++中定义类时,并不分配内存,而在动态语言中定义类时,却会分配内存。 比如...

  • js new 运行机制

    js手札--js中new到底做了些啥JS核心系列:理解 new 的运行机制深入理解 Javascript 运行机制及原型

  • 理解js中this指向

    先“死记硬背”以下几条规律:1、在函数体中,非显式或隐式的简单调用函数时,在严格模式下,函数内的this会被绑定到...

网友评论

    本文标题:理解js中的this

    本文链接:https://www.haomeiwen.com/subject/strzaxtx.html