你好社区这是一个简单的问题。Js OOP:一个类的私有变量
有人可以告诉我为什么这个打印'undefined'?
function Person(first,last,age) {
this.firstname = first;
this.lastname = last;
this.age = age;
var bankBalance = 7500;
}
// create your Person
var john = new Person ('John','Doe',33);
// try to print his bankBalance
document.write (john.bankBalance);
在最后一行我想打印john.bankBalance至极是7500个 谢谢!
因为'john'不有'bankBalance'属性。构造函数Person中的变量'bankBalance'在其外部是不可用的(因为JavaScript的范围规则)。另外,JS没有私有属性的语言支持;不过,闭包可以用来模拟它们。 –
初学者需要牢记的一点是JS中没有“class”。相反,JS使用原型。当你做'var bankBalance'时,它不像Java那样声明一个成员属性,它只定义一个局部变量。要添加属性,您必须实际更改实例的属性('this.bankBalance'),或通过原型('Person.prototype.bankBalance = 7500')更改它。 –
感谢所有。现在我知道Js是如何工作的 –