美文网首页
十一、call和apply

十一、call和apply

作者: 幸福幸福幸福 | 来源:发表于2017-02-15 10:46 被阅读2次

    下面介绍两个非常有用的方法:call()和apply()。通过这两个方法,我们能够让对象去借用其他对象中的方法,为己所用。这也是一种重用代码的方式。非常实用简单。


    我们也可以理解为通过call的首参数修改了对象函数的this值(从some_obj变为了my_obj)。
    如果有多个参数的话就在some_obj.say.call(my_obj,'Dudy','',''...)括号内一直写下去就可以了。

    如果我们没有将对象传递给call()的首参数,或者传递的参数是null,他的调用对象会默认为全局对象。

    apply用法和call基本一样,唯一不同之处在参数的传递形式,这里目标函数所需的参数都是通过一个数组的形式来传递的。所以下面两行代码的作用是等效的:

        some_obj.say.call(my_obj,'a,','b','c');
        some_obj.say.apply(my_obj,['a','b','c']);

    相关文章

      网友评论

          本文标题:十一、call和apply

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