Javascript 在Dojo中声明私有函数的安全方法

Javascript 在Dojo中声明私有函数的安全方法,javascript,function,dojo,private,Javascript,Function,Dojo,Private,在Dojo中创建私有函数的模式 Dojo文档提倡使用_下划线将函数表示为私有函数,但这显然只是一种约定,实际上并不创建私有函数,例如 define([ "dojo/_base/declare" ], function (declare) { return declare(null, { getPrivateData: function () { _myPrivateFunction(); }, _myPrivateF

在Dojo中创建私有函数的模式

Dojo文档提倡使用_下划线将函数表示为私有函数,但这显然只是一种约定,实际上并不创建私有函数,例如

define([
   "dojo/_base/declare"
],
function (declare) {
   return declare(null, {

       getPrivateData: function () {
           _myPrivateFunction();
       },

       _myPrivateFunction: function () {
           return "Data from private function";
       }
   });
});
我已经研究了关于Dojo中私有变量的问题,但是没有一个反映了我的需求。但是,的一个答案包括Dojo文档中的一个示例,其中展示了如何创建私有类

我的问题是,有没有理由不使用相同的模式来创建私有函数?e、 g

 define([
"dojo/_base/declare"
],
function (declare) {

    var myPrivateFunction = function() {
        return "Data from private function";
    };

    return declare(null, {

        getPrivateData: function () {
            myPrivateFunction();
        }
    });

});

如果你需要的话,第二个例子看起来很好。好吧,我是这么想的,但是,因为我是Dojo新手,我想检查一下。我所看到的所有其他东西(包括Dojo文档)都主张使用“_”(函数在主声明中定义)来定义(伪)私有函数。这是事实,但隐私级别不同。模块闭包中“隐藏”的
myPrivateFunction
函数比
declare
调用中声明的
myPrivateFunction
函数“更”私有。前者的用途是,如果您绝对不需要外部访问该功能。后者的用途是,如果需要外部访问,例如使用“子类”。如果它有帮助,我一直认为“\ux”函数应该被视为内部函数,而不是其他语言的私有函数。你的第二个建筑很好;毕竟这只是JavaScript。