js call apply用来干嘛 有什么区别

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

 

 

 

 

 

 

你可能感兴趣的:(js)