JavaScript之bind,call,apply
Posted flow
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript之bind,call,apply相关的知识,希望对你有一定的参考价值。
参考:
- http://rangercyh.blog.51cto.com/1444712/1615809
function foo(a,b) { this.x = this.x + a + b; } //case 1: var obj = {x:3}; foo.apply(obj,[1,2]); //obj <==> {x:6} //case 2: var obj = {x:3}; foo.call(obj, 1, 2); //obj <==> {x:6} //case 3: var obj = {x:3}; var foo1 = foo.bind(obj, 1, 2); foo1(); //obj <==> {x:6}
区别:
call与apply的区别在于apply中传给foo的参数统一放到第二个参数数组中,call从第二个参数起皆为传给foo的参数;
call与bind的区别,call将立刻执行,bind返回一个新函数;
以上是关于JavaScript之bind,call,apply的主要内容,如果未能解决你的问题,请参考以下文章
javascript中apply,call,bind区别,bind兼容等问题总结
深入浅出:了解JavaScript中的call,apply,bind的差别