Moo*_*oon 2 javascript bind call ecmascript-5
我刚读完一篇关于ECMAScript 5严格模式的文章.
它说ECMAScript 5添加了.bind().
var obj = {
method: function(name){
this.name = name;
}
};
obj.method.bind(obj,"hello");
Run Code Online (Sandbox Code Playgroud)
是不是与obj.method.call(obj,"你好")相同?
kan*_*gax 12
不,它不完全相同.
使用bind,你可以生成一个函数,而不需要调用任何东西.有call- 在你的obj.method.call(obj, 'hello')- 你实际上是在调用一种方法.
obj.method.bind(obj, 'hello')将是一个"相同"的表达function(){obj.method.call(obj, 'hello')}.那更加残酷.这就是ES5试图为其提供便利.
引入的历史原因也有bind; 几年前,它首次成为Prototype.js中的辅助方法之一.然后进入其他流行的库,如underscore.js.ES5只是遵循已经流行和需求的东西.
| 归档时间: |
|
| 查看次数: |
893 次 |
| 最近记录: |