如何理解和熟练运用js中的call及apply
1个回答
展开全部
//先看一段js代码,可以在页面看一下打印出的答案,为什么会打印这些 下面注释有解释原因,其实就是把当前的对象的this改变了
var age = 15;
function fn(a,b){
console.log(a);
console.log(b);
console.log(this.age)
console.log(this.len)
}
var str = {len:"长度",width:"宽度",age:5};
fn.call(str,"age","len","A","B");
/*call 以fn.call(obj,'a','b') 为例 第一步 函数fn的this指向了obj 第二部 fn的参数换成了obj里的参数 fn{'a','b'} ,这里的obj指的是上面的str*/
/*apply方式 用法一样只是传的参数已数组形式写 fn.apply(obj,["a","b"])*/
var age = 15;
function fn(a,b){
console.log(a);
console.log(b);
console.log(this.age)
console.log(this.len)
}
var str = {len:"长度",width:"宽度",age:5};
fn.call(str,"age","len","A","B");
/*call 以fn.call(obj,'a','b') 为例 第一步 函数fn的this指向了obj 第二部 fn的参数换成了obj里的参数 fn{'a','b'} ,这里的obj指的是上面的str*/
/*apply方式 用法一样只是传的参数已数组形式写 fn.apply(obj,["a","b"])*/
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询