js中call() apply() bind()的用法及三者区别
2017-08-18 00:00
513 查看
今天重温了下js的基础知识,看到对象这块又有点迷糊,借此来记录一下自己的总结。
一、首先看看apply()以及call()的用法:
从代码可以观察到apply的第一个参数为Math,第二个参数为固定长度的数组;
而call的第一个参数也为Math,紧跟着后面可传入多个参数。
总结:apply用于已知函数参数的数量的函数对象绑定,而call用于未知函数参数的数量的函数对象绑定,但这要强调的是apply的第二个参数必须传入一个数组。
二、再来看看bind()的用法
bind()的作用同样是绑定函数,但它绑定后不会立刻执行,而是返回一个改变了上下文的函数副本,需要对该函数副本进行调用,才能看出bind()指定对象后的作用
三、总结
1.call() apply() bind() 三个方法都是用来绑定对象到函数。
2.call() 、apply()会立刻调用函数,apply()第二个参数只能传入一个数组,call()可传入多个参数。
3.使用bind()绑定指定参数对象后生成一个函数副本等待调用,并非立即调用函数
四、最后
这是我在开源中国写的第一篇博客,用以记载在学习过程中自认为一时半会难以掌握的知识点。文中有不足之处还请各位大侠提出,谢谢!
一、首先看看apply()以及call()的用法:
var numbers = [1,5,9]; //output:9 var max_apply = Math.max.apply(Math,numbers); //output:9 var max_call = Math.max.call(Math,1,5,9);
从代码可以观察到apply的第一个参数为Math,第二个参数为固定长度的数组;
而call的第一个参数也为Math,紧跟着后面可传入多个参数。
总结:apply用于已知函数参数的数量的函数对象绑定,而call用于未知函数参数的数量的函数对象绑定,但这要强调的是apply的第二个参数必须传入一个数组。
二、再来看看bind()的用法
bind()的作用同样是绑定函数,但它绑定后不会立刻执行,而是返回一个改变了上下文的函数副本,需要对该函数副本进行调用,才能看出bind()指定对象后的作用
var counter = { count:0, inc:function(){ this.count++; } } var func = counter.inc; func(); console.log(counter.count); //不绑定对象的情况下 output:0
var counter = { count:0, inc:function(){ this.count++; } } var func = counter.inc.bind(counter); func(); console.log(counter.count);//绑定的情况下 output:1
三、总结
1.call() apply() bind() 三个方法都是用来绑定对象到函数。
2.call() 、apply()会立刻调用函数,apply()第二个参数只能传入一个数组,call()可传入多个参数。
3.使用bind()绑定指定参数对象后生成一个函数副本等待调用,并非立即调用函数
四、最后
这是我在开源中国写的第一篇博客,用以记载在学习过程中自认为一时半会难以掌握的知识点。文中有不足之处还请各位大侠提出,谢谢!
相关文章推荐
- js---js中的继承方法call、bind、apply,以及三者之间的区别总结。
- JS中apply和call的区别和用法
- js中apply()的用法,及apply()和call()的区别
- Js中apply与call的区别与用法
- 关于js中call、apply、bind方法的区别
- JS中call、apply、bind大概区别
- Js中call和apply的区别和用法
- js apply/call/caller/callee/bind使用方法与区别分析
- JS 中的this指向问题和call、apply、bind的区别
- 函数中.call/.bind/.apply三者的区别
- js中call和apply的用法和区别
- js的call() ,apply() 两种方法的区别和用法,最白话文的解释,让枯燥滚粗!
- js apply/call/caller/callee/bind使用方法与区别分析
- js apply/call/caller/callee/bind使用方法与区别分析
- Js中call和apply的区别和用法
- js中call,apply和bind方法的区别和使用场景
- JS中call、apply、bind大概区别
- 区别和详解:js中call()和apply()的用法
- apply, call, bind在js中的区别
- js apply/call/caller/callee/bind使用方法与区别分析