Javascript 什么';这是绑定ES6类&x27;s";这";到箭头函数?
我想将类方法分离到它们自己的文件中。例如,如果我在Javascript 什么';这是绑定ES6类&x27;s";这";到箭头函数?,javascript,ecmascript-6,Javascript,Ecmascript 6,我想将类方法分离到它们自己的文件中。例如,如果我在test.js中有这样一个简单的类: export default class TestClass { testFunction(...args) { return require('./test-function').apply(this, args); } } 然后在test function.js方法中: export default function() { /* `this` keyword
test.js
中有这样一个简单的类:
export default class TestClass {
testFunction(...args) {
return require('./test-function').apply(this, args);
}
}
然后在test function.js
方法中:
export default function() {
/* `this` keyword works fine */
}
但是,如果我将其更改为箭头函数,则此不再起作用(因为词法范围?):
如何正确绑定此
,以便我的arrowtest
函数可以使用它?tl;博士,你不能
如果导出箭头函数,则该函数的词法this
将绑定到全局对象(非严格模式)或未定义(严格模式)
这就是箭头函数的工作原理。如果需要函数来获取类对象的this
,则必须使用标准函数(){}
主体。tl;博士,你不能
如果导出箭头函数,则该函数的词法this
将绑定到全局对象(非严格模式)或未定义(严格模式)
这就是箭头函数的工作原理。如果需要函数来获取类对象的this
,则必须使用标准函数(){}
正文。请参见。请参见。
export default () => {
/* `this` doesn't work anymore */
}