JavaScript call apply

时间:2021-01-18 10:47:36   收藏:0   阅读:0

call()、apply()、bind() 都是用来重定义 this 这个对象的

bind 返回的是一个新的函数,必须调用它才会被执行

var name = ‘rannie‘, age = 17;
var obj={
    name: ‘coolin‘,
    objage: this.age,
    muFun: function(){
        console.log(this.name + ‘年轮‘ + this.age);
    }
}
var db = {
    name: ‘哈哈‘,
    age: 30
}
obj.myFun.call(db);    // 哈哈年轮30
obj.myFun.apply(db);    // 哈哈年轮30
obj.myFun.bind(db)();    // 哈哈年轮30

传参的情况下,

obj.myFun.call(db,‘成都‘,‘上海‘);     // 单个
obj.myFun.apply(db,[‘成都‘,‘上海‘]);     // 数组

数组直接追加

var array1 = [12 , "foo" , {name:"rannie"} , 2222]; 
var array2 = ["Rannie" , 666 , 100]; 
Array.prototype.push.apply(array1, array2); 
// array1 值为  [12 , "foo" , {name:"rannie"} , 2222 , "Rannie" , 666 , 100]
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!