JavaScript编程
完成条件
访问控制
JavaScript 并没有提供直接的方式来控制对内部变量的访问,但可以通过某些方法限制对某些变量的访问。
默认情况下,对象中的变量是公开的,并且可以在代码中的任何地方修改。因此,任何将来使用该代码的程序员都可能意外地改变对象的内部状态,这可能会导致问题。虽然最简单的保护方法是适当地对代码进行文档化(例如,注释显示如何使用对象),但有时你可能希望阻止对某个变量的直接访问。
要将变量声明为私有并使用它,需要进行两个步骤:
- 使用
var
语句在构造函数中声明一个新变量。 - 在构造函数中创建一个匿名函数,并将其作为对象的方法。
以下是使用私有字段的示例:
function MyObject() {
this.publicNumber = 10; // 公有字段。
var privateNumber = 20; // 私有变量。
this.getPrivateNumber = function() {
return privateNumber;
}
}
testObject = new MyObject();
在这个例子中,privateNumber
通常是一个局部变量,只在函数内部存在。正如你所看到的,它通过 this.getPrivateNumber()
这个匿名函数来访问,直接访问它会导致错误。由于这个匿名函数是在构造函数中声明的,它可以使用并修改在 MyObject
函数中声明的局部变量,并且即使函数返回,匿名函数仍然会保持对该变量的引用。这个匿名函数绑定到对象的实例上,创建一个新的 MyObject
实例时,会创建一个新的匿名函数,指向新的 privateNumber
。
最后修改: 2025年01月13日 星期一 15:06