我有两个.js文件:root.js和external.js
root.js
import myExternalFunction from 'external.js'
class Parent {
constructor(){}
parentFunction = () => {
console.log('I was called from an external function using "this."')
}
}
external.js
export default myExternalFunction = () => {
this.parentFunction()
}
目前我收到一条错误消息,指出它不是一个功能,或者没有访问过这个'。
如何导入想要使用' this'的外部功能?他们被召唤的范围?
答案 0 :(得分:0)
如何导入想要使用调用它们的'this'范围的外部函数?
它与导出/导入函数的方式无关。
您需要考虑两件事:
想要动态must not be arrow functions接收this
值的功能,请使用
export default function myExternalFunction() {
this.parentFunction()
}
as usual,必须以正确的方式调用该函数以获得预期的this
值。在调用被调用函数的范围内传递当前this
值没有神奇之处。你必须做像
import myExternalFunction from 'external.js'
class Parent {
constructor(){
this.method = myExternalFunction;
this.parentFunction = () => {
console.log('I was called from an external function using "this."')
}
}
}
const example = new Parent;
example.method() // an invocation as a method
myExternalFunction.call(example); // explicit using `call`