gpt4 book ai didi

javascript - 如何在 "return this"的揭示模块模式中处理本地函数

转载 作者:行者123 更新时间:2023-12-02 19:19:41 26 4
gpt4 key购买 nike

我喜欢揭示模块模式。我将拥有一些我想公开并返回的私有(private)函数。但我的揭示模块模式中也可能有一些“返回此”的本地函数...

var player = function(){
//my local variable scope...

oplayer.damage = function(){
if(!this.grace){
this.shield--;
if (this.shield == 0){
return this;
}
}
};
...

return {
damage : oplayer.damage
}
}();

如果我明确返回某些内容,可以“返回此内容”吗? (在使用揭示模块模式的上下文中)。如果没有,我如何将本地函数 oplayer.damage 转换为在正确的上下文中使用?感谢您的任何建议!我只是想把我的思想集中在整个“返回这个”的概念上。

最佳答案

应该没问题,因为“this”与执行上下文相关。因为您要在公共(public)函数上返回它,该函数是“削减”对象的一部分,所以您只能获得削减的对象。因此,我认为如果考虑以下情况,您尝试做的事情应该没问题:

var test = function(){
var pri = function(){
console.log("Private");
};

var pub = function(){
pri();
console.log("pub");
return this;
}

return {
pub: pub
};
}();

console.log(test.pri); //-> undefined
console.log(test.pub); //-> function(){…}
console.log(test.pub()); //-> "Private" "pub" [Object {…}]
console.log(test.pub().pri); //-> "Private" "pub" undefined

关于javascript - 如何在 "return this"的揭示模块模式中处理本地函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12691636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com