如何在JavaScript中使构造函数中的变量变为私有的
在JavaScript中,没有特定的方法可以使构造函数中的变量成为私有的。如果一个变量是真正的私有变量,意味着它无法从外部访问。构造函数是一个生成类的新实例,有时被称为“对象”的函数。构造函数的作用是构建一个对象,并为对象的属性分配或设置值(如果它们存在)。
让我们通过几个例子来看看如何在构造函数中使变量变为私有的。
示例1: 在原型上定义了两个方法,getElement和setElement。setElement方法不起作用。在下面的示例中,我们创建了一个值为15的对象a,将相同的值赋给变量b以展示我们可以使用getElement方法来获取值,但我们无法使用setElement方法来设置或覆盖值,因为args没有被声明为变量,它被传递给一个新变量,所以它保持私有。通过以下方式声明变量,变量不能由其任何方法进一步修改,它保持私有。
<script>
function func(args) {
var element = args;
this.getElement = function () {
return element;
};
this.setElement = function (input) {
element = input;
};
}
var a = new func(15);
var b = a.getElement();
console.log(b);
a.setElement(5);
var c = a.element;
console.log(c);
</script>
输出:
15
undefined
示例2: 在before方法中,声明了一个变量,并将传入函数的值赋给它。在这个示例中,没有声明新变量来传递args的值。因此,我们不能更改在函数中未定义的变量的值。因此,setElement不能像前一个示例那样帮助我们创建一个新变量。由于在javascript构造函数中没有完美的方法使变量变为私有,因此可以使用这些方法。它允许我们的值在javascript构造函数中不被改变。
<script>
function func(args) {
this.getElement = function () {
return args;
};
this.setElement = function (input) {
args = input;
};
}
var a = new func(10);
var b = a.getElement();
console.log(b);
a.setElement(5);
var c = a.element;
console.log(c);
</script>
输出:
10
undefined
阅读更多:JavaScript 教程
极客教程