我有一个javascript库,使用' Revealing Module Pattern '公开其成员。我特别需要访问私人会员。有人可以帮我这方面吗?任何提示和技巧?如果有人能够对此有所了解,我深表感谢。在此先感谢。
Revealing Module Pattern by Addy Osmani
var myRevealingModule = (function () {
var privateVar = "Ben Cherry",
publicVar = "Hey there!";
function privateFunction() {
console.log( "Name: " + privateVar );
}
function publicSetName( strName ) {
privateVar = strName;
}
function publicGetName() {
privateFunction();
}
// Reveal public pointers to
// private functions and properties
return {
setName: publicSetName,
greeting: publicVar,
getName: publicGetName
};
})();
myRevealingModule.setName( "Paul Kinlan" );
myRevealingModule.getName();
// is there anyway to access 'privateFunction'????
无论如何都要访问' privateFunction '????
任何提示和技巧?如果有人能够对此有所了解,我深表感谢。在此先感谢。
答案 0 :(得分:1)
您创建的myRevealingModule
对象包含setName
,greeting
和getName
。从这些setName
引用publicSetName
和getName
引用publicGetName
。轮到您publicGetName
完全符合您的要求:致电privateFunction
。
所以,回答你的问题:
myRevealingModule.publicGetName();
是您访问privateFunction
的方式。您甚至可以通过以下方式更改privateVar
的值:
myRevealingModule.publicSetName("foobar");
myRevealingModule.publicGetName();