call()、apply()、bind()方法的使用及区别

一、call()/apply()方法

作用:改变this指向

区别:传参的形式不同

正常函数在执行的时候内部调用了.call()方法。

 

function test() {
    console.log("hello world");
}
test();  // hello world
test.call(); // hello world

 

构造函数在执行时,可以通过.call()方法改变this指向。来看一个简单例子:

var obj = {};

function Person(name, age) {
    this.name = name;
    this.age = age;
}

var per = new Person();
Person.call(obj, "wade", 39);   // 通过.call()方法将this指向了obj
console.log(per.name, per.age); // undefined undefined
console.log(obj);               // {name: "wade", age: 39}
console.log(obj.name, obj.age); // wade 39

 

call()、apply()、bind()方法的使用及区别

上一篇:直播视频app源码,Android获取状态栏高度,动态设置控件高度


下一篇:开发中一些需要特别注意的事情