gpt4 book ai didi

javascript - 在原型(prototype)函数中访问私有(private)成员

转载 作者:行者123 更新时间:2023-11-29 19:30:06 24 4
gpt4 key购买 nike

像这样向原型(prototype)添加新函数时,您无法访问构造函数中定义的变量,因为它们超出了范围。

function Thing() {
var something = 357;
}

Thing.prototype.doSomething = function () {
// no access to something because it is out of scope
console.log(something);
};

由于在构造函数中将函数添加到原型(prototype)时使用了闭包,它可以访问那里定义的变量。

function Thing() {
var something = 357;

Thing.prototype.doSomething = function () {
console.log(something);
};
}

这是访问这些变量的好方法还是有更好的模式来实现相同的目标?有什么我需要注意的陷阱吗?

最佳答案

您将无法从原型(prototype)访问私有(private)变量。但是,您可以访问公共(public)变量。我发现这是一个很好的权衡:

function Thing() {
this._something = 357;
}

Thing.prototype.doSomething = function () {
console.log(this._something);
};

在属性之前放置 _ 的命名约定只是将其标记为私有(private)的一种非正式方式,即使实际上并非如此。

关于javascript - 在原型(prototype)函数中访问私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28400402/

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