为什么在这个封装示例中私有变量被分配了两次?

时间:2014-05-24 12:46:13

标签: javascript oop encapsulation

在此example of encapsulation中,为什么{9}}已分配给第9行的私有变量name?对我来说这似乎是多余的,因为在第2行中,_name已经分配给name,并且_name_name没有任何更改。< / p>

或者我读错了,name是私有变量吗?

name

1 个答案:

答案 0 :(得分:1)

两个 name。一个是function Person的参数,表示创建并初始化的值_name。第二个是存储为对象function成员的匿名name的参数,它是传递给getter / setter以更新私有变量值的参数(或获取)如果没有提供当前值)。考虑:

var someone = new Person("alice");
someone.name("bob");
console.log(someone.name()); // output: bob