您当前的位置: 首页 > 学无止境 > JS经典实例 网站首页JS经典实例
ES5_call,apply,bind用法详解
发布时间:2019-10-05 18:18:14编辑:雪饮阅读()
call
call方法可以强制邦定一个方法内部的this指向
var obj={username:'dmj'};
function foo(data1,data2){
console.log(this);
console.log(data1);
console.log(data2);
}
foo.call(obj,'参数1','参数2');
该示例可在控制台中发现打印的this是obj,这是因为call的作用
apply
apply方法和call方法一样,只是传参形式不同
var obj={username:'dmj'};
function foo(data1,data2){
console.log(this);
console.log(data1);
console.log(data2);
}
foo.apply(obj,['参数1','参数2']);
bind
bind和apply、call功能也是一样的,其传参形式和call一样,而bind也有其特有的属性。
bind所特有的就是其仅改变方法的this而不会立即执行,这点常用于异步(回调)
var obj={username:'dmj'};
function foo(data1,data2){
console.log(this);
console.log(data1);
console.log(data2);
}
foo.bind(obj,'参数1','参数2')();
因为bind不会自动执行,所以这里在末尾加“()”使其自我执行。
关键字词:es5,call,apply,bind
上一篇:ES5_数组的扩展
下一篇:ES6_let const关键字