<script>
var person = function () {
// Private
var name = "David";
return {
getName : function () {
return name;
},
setName : function (newName) {
name = newName;
}
};
}();
console.log(person.name);
</script>
Run Code Online (Sandbox Code Playgroud)
题:
为什么它显示:在控制台中未定义?
你需要使用
console.log(person.getName());
Run Code Online (Sandbox Code Playgroud)
因为name是一个闭包变量,不能在匿名函数的范围之外访问.
可变person持有这是与属性的对象的iife返回的值getName和setName,所以这些都是可以从访问的唯一属性person参考.
演示:小提琴
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |