gpt4 book ai didi

javascript - 私有(private)变量和访问父对象

转载 作者:行者123 更新时间:2023-11-30 10:44:29 26 4
gpt4 key购买 nike

我想要一个包含子对象 S 的主对象 M,子对象 S 有一些方法 E,方法 E 有一个私有(private)变量 P。我还希望方法 E 可以通过另一个变量 V 访问 M。对于私有(private)变量,我是这样做:

M.S = function () {
var P,
V; // how to set V to M?

return {
E: function () {
// stuff goes here
}
}
}();

我想到的一个解决方案是去掉最后一行的(),然后调用匿名S-creating函数作为M的方法。这样就解决了问题,但我想可能还有更多优雅的方式去做。

M.S = function () {
var P,
V = this;

return {
E: function () {
// stuff goes here
}
}
};
M.S = M.S()

大多数情况下,我需要知道什么是好的做法,因为我是 Javascript 中私有(private)变量的新手。

最佳答案

一个非常简单的方法是:

M.S = function (V) { // <-- V is declared locally
var P;

return {
E: function () {
// stuff goes here
}
};
}(M);

V 是通过形参在本地声明的。 M 的引用被分配给 V,通过 function(V){...}(M);

即使稍后重新声明 MV 仍会指向正确的对象。

关于javascript - 私有(private)变量和访问父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9218459/

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