美文网首页
call和apply和this详细笔记

call和apply和this详细笔记

作者: 灯不梨喵 | 来源:发表于2017-11-11 01:39 被阅读0次

应该大家都有所耳闻,call和apply的区别,call传参是多个参数,而apply传参则是一个数组,其他的基本没啥区别。

那没啥区别为什么还要写出来。

之前有这么一题让我猛然一惊(不知道为什么学习JS经常出现这样的时刻)

function a () {

alert (this);

}

a.call (null);//[object Window]

其实也没什么好惊的,就是再从新详细地复习一遍具体概念。

fun.call(thisArg,arg1,arg2, ...)

参数

thisArg

fun函数运行时指定的this值需要注意的是,指定的this值并不一定是该函数执行时真正的this值,如果这个函数处于非严格模式下则指定为null和undefined的this值会自动指向全局对象(浏览器中就是window对象),同时值为原始值(数字,字符串,布尔值)的this会指向该原始值的自动包装对象。

arg1, arg2, ...

指定的参数列表。

返回值Edit

返回结果包括指定的this值和参数。

至于apply差不多了。

那说到这两个就绕不开this。

函数在哪里调用才决定了this引用的对象

this机制的四种规则

1默认绑定全局变量window

2隐式绑定

3显式绑定bind()\apply()\call()

4new新对象绑定,绑定的是新建的对象

当然了实际情况比网上的例子复杂多了……

那就来练习一下好了!

---等我找到新题型再来repo

相关文章

网友评论

      本文标题:call和apply和this详细笔记

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