摘要:的指向函数内指向普通函数调用,指向,严格模式下是构造函数调用,指向实例对象,原型方法中也是实例对象对象方法调用,指向方法所属对象,紧挨着的对象事件绑定方法,指向绑定事件对象定时器函数,指向事件处理函数内部的,始终都是点击的事件源元素数组遍历
this的指向
函数内this指向
普通函数调用,指向window,严格模式下是undefined
构造函数调用,指向实例对象,原型方法中this也是实例对象
对象方法调用,指向方法所属对象,紧挨着的对象
事件绑定方法,指向绑定事件对象
定时器函数,指向window
事件处理函数内部的this,始终都是点击的事件源DOM元素
数组遍历方法(forEach,find等)内部的this都指向window
如果在函数内部调用一个普通函数,该函数内部的this指向的是window
例子
创建一个构造函数Person,这里是xjj接收Person的实例,所以this指向xjj
返回值return简单类型的时候,不会发生变化。返回值是复杂类型的时候,输出会发生变化
例子
name定义在全局,相当于window的name,调用handle的时候,this指向window,所以输出global
不管是在哪里被调用,handle函数的输出始终是不变的,所以这里的输出是global
直接输出obj的name,就是obj
调用foo函数的情况下,后面的local覆盖了obj,所以obj的name变成了local
argument表示传入的参数组成的伪数组,argument[0]表示第一个参数,也就是fn
这里得出的结果是undefined,因为argument[0]没有name这个属性
如果手动加一个name属性,就会有值,输出hehe
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/108415.html
总结call,apply,bind方法的理解使用和区别。 call,apply,bind这三个方法在JavaScript中是用来改变函数调用的this指向。那么改变函数this指向有什么用呢?我们先来看一段代码 var a= { name:harden, fn:function () { console.log(this.name); } } var b =...
摘要:常用场景以函数形式调用指向指向了以方法形式调用指向调用方法的那个对象指向颜色为红色构造函数调用指向实例的对象此处分别指向的实例对象控制台输出使用对象的方法时指向报错因为是的一个方法更改错误使颜色为调用了这个方法此时的指向此操作将指向的赋给则 THIS常用场景 1、以函数形式调用,this指向window function fn(m,n){ m=2; n=3; console...
摘要:常用场景以函数形式调用指向指向了以方法形式调用指向调用方法的那个对象指向颜色为红色构造函数调用指向实例的对象此处分别指向的实例对象控制台输出使用对象的方法时指向报错因为是的一个方法更改错误使颜色为调用了这个方法此时的指向此操作将指向的赋给则 THIS常用场景 1、以函数形式调用,this指向window function fn(m,n){ m=2; n=3; console...
摘要:常用场景以函数形式调用指向指向了以方法形式调用指向调用方法的那个对象指向颜色为红色构造函数调用指向实例的对象此处分别指向的实例对象控制台输出使用对象的方法时指向报错因为是的一个方法更改错误使颜色为调用了这个方法此时的指向此操作将指向的赋给则 THIS常用场景 1、以函数形式调用,this指向window function fn(m,n){ m=2; n=3; console...
摘要:一等公民对象函数在提指向问题之前,肯定是有必要说明一等公民对象,既然是对象,那么就能像普通的值一样传递。在普通浏览器中指向的是在中指向的是全局对象全局环境中或者模块环境中。即指向或者的第一个参数。第二条规则,指向的不是原文链接 1. 一等公民对象——函数 在提this指向问题之前,肯定是有必要说明一等公民对象function ,既然function是对象,那么就能像普通的值一样传递。嗯...
摘要:否则报错在严格模式下,对象的函数中的指向调用函数的对象实例同样道理,可以推断出,在严格模式下,构造函数中的指向构造函数创建的对象实例。 要点 this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象。 this指向的三种情况 情况1:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的...
阅读 2311·2019-08-30 15:44
阅读 1241·2019-08-30 13:01
阅读 3276·2019-08-30 11:22
阅读 3059·2019-08-29 15:23
阅读 1591·2019-08-29 12:22
阅读 3344·2019-08-26 13:58
阅读 3422·2019-08-26 12:17
阅读 3440·2019-08-26 12:16