Javascript 如何绑定";这";调用函数时自动执行?

Javascript 如何绑定";这";调用函数时自动执行?,javascript,Javascript,我的示例代码: var Person=(函数(){ var__sym=符号(“人”); 班主任{ 建造师(姓名){ 这个[_sym]={name:name}; } getName(){ 让u this=this[u sym]; 返回_this.name; } } 返回人; }()); var person=新人(“赫敏”); console.log(person.name);//未定义 console.log(person.getName());//赫敏您可以使用箭头函数,因此您将确保每次上下

我的示例代码:

var Person=(函数(){
var__sym=符号(“人”);
班主任{
建造师(姓名){
这个[_sym]={name:name};
}
getName(){
让u this=this[u sym];
返回_this.name;
}
}
返回人;
}());
var person=新人(“赫敏”);
console.log(person.name);//未定义

console.log(person.getName());//赫敏
您可以使用箭头函数,因此您将确保每次上下文(这)都是相同的(无论从何处调用箭头函数,这都将指向父对象)


在javascript中,使用
function\u name.bind(o)
可以创建一个新函数,该函数的上下文
this
绑定到对象
o

您需要创建一个新函数:

__data.boundMessagesFunction = __data.getMessagesAsync.bind(_this);
现在您可以拨打:

let messages = await __data.boundMessagesFunction();

你考虑过改用打字脚本吗?您可以声明私有属性,编译器将为您处理其余的部分。这看起来像是一个意大利面代码。不必要的复杂。@minitauros谢谢!我会在乎的。@undefined我的想法来自:
这个
数据有一些私有数据。要分配数据,我需要一个键。钥匙是一个符号。谢谢!但是使用这种方式,我仍然需要
这个[\uu sym][\uu prop.targetUserId]
您让我想到了接口或抽象类。但这仍然是一个很好的解决方案。非常感谢。谢谢确保查看关于箭头函数的@dark\u gf响应。
let messages = await __data.boundMessagesFunction();