var fullname = 'John Doe';
var obj = {
fullname: 'Colin Ihrig',
prop: {
fullname: 'Aurelio De Rosa',
getFullname: function() {
return this.fullname;
}
}
};
var test = obj.prop.getFullname;
console.log(test());
让控制台出现Aurelio De Rosa,,apply和call,var that=this这3中方法可以吗?用这3种方式具体该怎么写?除了apply和call,var that=this,还有其他的方式吗?求解。谢谢大家
1)
2)
3)
4)
你这里面相当于
所以this指向window了。
可以这么写:
1.直接用 obj.prop调用
2.调用 test 上下文指向obj.prop
http://www.zhihu.com/question/20289071
楼上已经说了基于调用test时的改变,我说基于定义test的改变
1、可以通过将test改变为一个获取getFullname的值逻辑
2、使用bind功能
在
obj context
调用getFullname
就能满足你的需求,apply, call, bind
只是具体实现方式,上面已经回答的很好啦。