gpt4 book ai didi

javascript - 将方法应用于javascript中的对象和私有(private)变量

转载 作者:行者123 更新时间:2023-11-30 08:17:10 27 4
gpt4 key购买 nike

我正在尝试将一种方法应用于涉及使用其私有(private)变量的现有对象。对象设置如下:

function a(given_id)
{
var id= given_id;
}

现在我想像这样应用一些新方法

my_obj = new a('some_id');
my_obj.myMethod = function(){
alert(id);
}

现在,如果我使用 my_obj.myMethod(),我会收到一条错误消息,指出 id 未定义。如果我将 id 从私有(private)更改为公共(public),则相同的代码会起作用。

我不明白为什么会这样,因为如果 myMethod 最初是在 a 中定义为特权方法,它就会起作用。我唯一能想到的是 myMethod 被添加为公共(public)方法,而不是特权方法。

如有任何相关信息,我们将不胜感激。

最佳答案

我认为您正在尝试创建一个“特权方法”,基本上是一个能够访问私有(private)变量的方法:

function a(given_id) {
var id= given_id;

this.myMethod = function()
{
alert(id);
}
}

您不能在构造函数外部声明特权方法,因为如果您这样做,它们将无法访问构造函数的闭包。

推荐读物:

关于javascript - 将方法应用于javascript中的对象和私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1115408/

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