var name = '小王', age=17
var obj = {
name:'小张',
objAge:this.age,
myFun:function(){
console.log(this.name + ' 年龄 ' + this.age);
}
}
obj.myFun()
小张 年龄 undefined
这是由于通过’obj.myFun()'调用myFun函数时this指向obj,而obj没有age属性
var fav = '盲僧'
function shows(){
console.log(this.fav);
}
shows()
盲僧
var name = '小王', age = 17
var obj = {
name:'小张',
objAge:this.age,
myFun:function(fm,t){
console.log(this.name + ' 年龄 ' + this.age, ' 来自 ' + fm + ' 去往 ' + t);
}
}
var db = {
name : '德玛',
age : 99
}
obj.myFun.call(db,'成都','上海');
obj.myFun.apply(db,['成都','上海']);
obj.myFun.bind(db,'成都','上海')();
obj.myFun.bind(db,['成都','上海'])();
德玛 年龄 99 来自 成都 去往 上海
德玛 年龄 99 来自 成都 去往 上海
德玛 年龄 99 来自 成都 去往 上海
德玛 年龄 99 来自 成都 上海 去往 undefined

本文探讨了JavaScript中this关键字的指向问题,并通过实例展示了如何使用call、apply及bind来改变函数执行时的上下文环境,从而解决this指向问题。
1823

被折叠的 条评论
为什么被折叠?



