首先先看个例子吧: 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指向问题
最新推荐文章于 2023-07-24 14:04:40 发布