码迷,mamicode.com
首页 > 移动开发 > 详细

*JS核心:call、apply和bind

时间:2017-05-12 00:19:42      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:style   class   code   其他   cal   上下   上下文   color   解析   

1.

var func=function(a,b,c){
        console.log([a,b,c]);
    };
func.apply(null,[1,2,3]);  //[1,2,3]
func.call(null,1,2,3);  //[1,2,3]
func.bind(null,1,2,3);  //无输出
func.bind(null,1,2,3)();    //[1,2,3]
func.bind(null)(2,3,4)  //[2,3,4]

 

解析:

   当使用apply或call时,如果我们传入第一个参数为null,函数体内的this会指向默认的宿主对象,在浏览器中则是window。

   apply和call只是参数传入形式不同,其他一样。但bind则不同:前面的调用call或apply时,函数直接运行,但bind不会运行,而是返回一个绑定上下文的函数并且this永远的指向bind括号中的第一个参数。

 

2.

call、apply和bind主要有2个作用:

①改变this的指向;

②借用其他对象的方法

*JS核心:call、apply和bind

标签:style   class   code   其他   cal   上下   上下文   color   解析   

原文地址:http://www.cnblogs.com/jacksplwxy/p/6843307.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!