bob*_*e01 4 javascript oop private-members javascript-namespaces
我有一个声明命名空间的js脚本,然后有一个run()我可以在XUL脚本中调用的方法,如myNamespace.run():
var myNamespace = {
run: function() {
var selectedText = getSelText();
alert (selectedText);
var getSelText = function() {
var focusedWindow = document.commandDispatcher.focusedWindow;
var selText = focusedWindow.getSelection();
return selText.toString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够getSelText()在myNamespace.run()不需要声明getSelText()为另一个顶级函数的情况下调用内部myNamespace.相反,它应该像内部的私有方法myNamespace.run().
当我运行此脚本时,我收到一个错误:
getSelText不是一个功能.
我是JavaScript的新手,所以我不知道设计它的最佳方法.是否有可能实现我的目标?我是以错误的方式来做这件事的吗?
感谢任何帮助!
它被称为模块模式.创建一个匿名函数(用于作用域),立即调用并返回公共接口.
var myNamespace = (function() {
// private functions for your namespace
var getSelText = function() {
...
};
return {
run: function() {
var selectedText = getSelText();
alert (selectedText);
}
};
})()
Run Code Online (Sandbox Code Playgroud)