在此example of encapsulation ,为什么是name
分配给私有(private)变量_name
9号线?这对我来说似乎是多余的,因为在第 2 行中,name
已分配给 _name
_name
没有任何变化或name
..
或者我读错了,是name
私有(private)变量?
function Person(name) {
var _name = name;
return {
name: function (name) {
if(!name) {
return _name;
}
_name = name;
}
};
}
最佳答案
有两个名称
。第一个是函数 Person
的参数,表示创建并初始化值_name
。第二个是作为对象的 name
成员存储的匿名 function
的参数,它是传递给 getter/setter 的参数,用于更新私有(private)变量的值 (或获取当前值(如果未提供)。考虑:
var someone = new Person("alice");
someone.name("bob");
console.log(someone.name()); // output: bob
关于javascript - 为什么在这个封装示例中私有(private)变量被赋值两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23845199/