call 和 apply可以借用别的对象的方法
比如obj1没有say方法,通过call和apply之后即可借用say方法,而区别则是call第二个参数是字符串,多个用逗号分隔,
比如 call(obj1, 'name', 'sex')
而apply多个参数是用一个数组把参数传递进去。
比如apply(obj1, ['name','sex'])
let obj = {
name: 'obj',
say: function (pre) {
console.log((pre || 'none') + '--' + this.name);
}
};
let obj1 = {
name: 'obj1'
}
obj.say();
obj.say.call(obj1, 'call');
obj.say.apply(obj1, ['apply']);
控制台打印结果
none--obj
call apply.html:16 call--obj1
call apply.html:16 apply--obj1