最近接手前端的工作,对当前项目中自制的js框架下,js的使用产生了非常多的困惑.尤其是js的类,对象,函数,this等等相互之间的关系和转换,以前学过也忘得差不多了,现在基本相当于重新看. js中的函数有可以有好几种解释,普通函数,类,一个对象.三个关系都是可以看成是共存 ...
a.call b 网上说明的版本比较多。有的说,是指针替换。有说,将a对象的方法加在b对象执行。官方说:什么对象替换什么对象。反正看了几个版本,尽管有具体的实例,看了我三次都没看懂它的具体含义。看过还是云里雾里的。后来发现,结合实验去理解非常好。 其实,换成自己能够接受的方式理解为好。a对象的方法应用到b对象上 函数apply的意思正好说明符合这样理解:a对象应用到b对象上去 a对象既然添加到b对 ...
2016-07-01 10:56 0 1896 推荐指数:
最近接手前端的工作,对当前项目中自制的js框架下,js的使用产生了非常多的困惑.尤其是js的类,对象,函数,this等等相互之间的关系和转换,以前学过也忘得差不多了,现在基本相当于重新看. js中的函数有可以有好几种解释,普通函数,类,一个对象.三个关系都是可以看成是共存 ...
今天被人问到js中的call,apply的区别和用途,解释了一番后,想到之前在逼乎上看到一位小伙伴生动形象的解释 本身不难理解,看下MDN就知道了,但是不常用,遇到了,还要脑回路回转下。或者时间长了,还是要确定下去看下文档,为了方便记忆: 猫吃鱼,狗吃肉,奥特曼打小怪兽。 有天狗 ...
本文受到了知乎问题 如何理解和熟练运用js中的call及apply? 的启发。 obj.call(thisObj, arg1, arg2, ...); obj.apply(thisObj, [arg1, arg2, ...]); 作用:将 obj (即this) 绑定到 thisObj ...
在JavaScript中,call、apply和bind是Function对象自带的三个方法,这三个方法的主要作用是改变函数中的this指向。 call、apply、bind方法的共同点和区别:apply 、 call 、bind 三者都是用来改变函数的this对象的指向的;apply ...
call和apply 两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj具备了obj的属性和方法。或者说thisObj『继承』了obj的属性和方法。绑定后会立即执行函数。 唯一区别是apply接受的是数组参数,call接受的是连续参数。 我们在控制台 ...
ECMAScript中的函数是对象,因此函数也有属性和方法。每个函数都包含两个属性:length和prototype,且每个函数包含两个非继承而来的方法apply()和call()。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内thiis对象的值。 apply ...
前言 在学习继承相关的知识点时,遇到了一个问题。 下面这段代码中的Animal.call(this, name);是什么意思?为什么它就表示继承到了父类Animal的属性呢? 后来回顾了new操作符的知识点,这才豁然开朗。 一、了解new操作符 通过构造模式来创建对象的关键一步 ...
的: 调试的时候走的是标红的这段代码,然后用到了callback.call这个函数,于是翻看了一下《j ...