首先先看个例子吧: var data1 = "def"; function func2(callBack) { if(callBack){ callBack(); } } vice = { "data1" : "abc" }; vice.trans = function () { alert(this.data1.toUpperCase()); }; vice.func1 = function (callBack) { func2(callBack); }; vice.func1(vice.trans); 上述代码会输出: “DEF” 把func2(callBack); 这行修改为func2(callBack.bind(this)); 会输出“ABC” 当把var data1 = "def"; 这一行去掉,则会报错。 总结:这个就是回调函数引起的this指向问题。回调函数vice.trans在执行时,this 指向了window。
回调函数引起的this指向问题
猜你喜欢
转载自blog.csdn.net/liubangbo/article/details/81161848
今日推荐
周排行