我想知道如何从JavaScript模块中的私有和公共函数访问公共属性?
例如,如果这是我的模块:
var PersonModule = (function(){
var sayHello = function(){
alert("Hello " + name);
}
var privateChangeNameToBob = function(){
this.name = "Bob";
}
var changeName = function(){
privateChangeNameToBob();
}
return {
name: "",
sayHello: sayHello,
changeName: changeName
}
})();
Run Code Online (Sandbox Code Playgroud)
无论sayHello或changeName功能正常工作,因为我不知道如何访问公共name属性.有没有办法做到这一点?我通过使用带有getter和setter的私有变量来解决它,但我想知道如果没有它们我是否可以做到.
您需要对结果对象的引用:
var PersonModule = (function(){
function sayHello() {
alert("Hello " + person.name);
}
function privateChangeNameToBob() {
person.name = "Bob";
}
function changeName() {
privateChangeNameToBob();
}
const person = {
name: "",
sayHello,
changeName
};
return person;
})();
Run Code Online (Sandbox Code Playgroud)
当然,考虑到你的单件IIFE模块,你也可以PersonModule.name直接参考.
| 归档时间: |
|
| 查看次数: |
223 次 |
| 最近记录: |