Javascript 如果名称与public方法相同,是否应以this.myPrivateMethod作为前缀?

Javascript 如果名称与public方法相同,是否应以this.myPrivateMethod作为前缀?,javascript,jquery,Javascript,Jquery,我使用的模块模式如下: BLAH = ( function() { var someMethod = function(data) { }; return { someMethod: function(data) { this.someMethod(data); } } })(); 在公共方法中,使用这个引用内部函数是否是一种好的做法 这很重要还是只是让事情变得更清楚?这只是一种惯例,可以让代码更具可读性(不应该低估代码

我使用的模块模式如下:

BLAH = ( function() {

  var someMethod = function(data) {

  };



  return {
      someMethod: function(data) {
          this.someMethod(data);
      }

  }

})();
在公共方法中,使用
这个
引用内部函数是否是一种好的做法


这很重要还是只是让事情变得更清楚?

这只是一种惯例,可以让代码更具可读性(不应该低估代码的价值)。从功能的角度看,这没有什么区别

这只是一种惯例,使代码更具可读性(不应低估)。从功能的角度看,这没有什么区别

您的示例没有按预期工作。调用
BLAH.someMethod()

someMethod: function(data) {
    this.someMethod(data);
}
它将继续递归调用public
someMethod
,直到出现堆栈溢出


要访问私有函数,不应在其前面加上
this.
。私有函数不是当前对象的属性。它仅在
someMethod

的执行上下文中可用。您的示例未按预期工作。调用
BLAH.someMethod()

someMethod: function(data) {
    this.someMethod(data);
}
它将继续递归调用public
someMethod
,直到出现堆栈溢出


要访问私有函数,不应在其前面加上
this.
。私有函数不是当前对象的属性。它仅在
someMethod

的执行上下文中可用。为了更清楚,可以编写上述代码:

var Blah = (function(){

    Blah = function() {
    };

    Blah.prototype.someMethod = function( data ){
        ...
    }

    return Blah;
)();

干杯

为了更清楚,可以编写上述代码:

var Blah = (function(){

    Blah = function() {
    };

    Blah.prototype.someMethod = function( data ){
        ...
    }

    return Blah;
)();

干杯

就我个人而言,我不确定你从私人内部方法中获得了什么

这是我在我的项目中使用的模板,它基于jQuery如何完成它们的任务

(function ($, undefined) {
    var MyObject = (function () {
        var myObj = {},
            _myInternalVariable = 'YAY';

        //Internal method
        function _internalMethod(){
        };

        //external variables
        myObj.debug = false;

        //version number
        myObj.version = "1.0";

        // Logs the message to the console, if it (the console) exists
        myObj.log = function (msg) {
            if (window.console && typeof console.log !== "undefined" && myObj.debug) {
                console.log(msg);
            }
        };

        return myObj;
    })();

    window.MyObject = window.MO = MyObject ;
})(jQuery);

就我个人而言,我不确定你从拥有私人内在方法中获得了什么

这是我在我的项目中使用的模板,它基于jQuery如何完成它们的任务

(function ($, undefined) {
    var MyObject = (function () {
        var myObj = {},
            _myInternalVariable = 'YAY';

        //Internal method
        function _internalMethod(){
        };

        //external variables
        myObj.debug = false;

        //version number
        myObj.version = "1.0";

        // Logs the message to the console, if it (the console) exists
        myObj.log = function (msg) {
            if (window.console && typeof console.log !== "undefined" && myObj.debug) {
                console.log(msg);
            }
        };

        return myObj;
    })();

    window.MyObject = window.MO = MyObject ;
})(jQuery);

我不认为有任何其他方式可以引用“public”
someMethod
。如果是我,我会将私有方法命名为
\u someMethod
,消除混淆,因为该方法是私有的,除了你之外,没有人会看到“丑陋”的nbame。我认为yui的标准是两者兼而有之,这个._someMethod对吗?使用它来引用someMethod分配给的对象不是一个好主意,因为函数的这个值是通过调用设置的,所以如果函数不是以
BLAH.someMethod()
的形式调用的,它可能不会引用分配给
BLAH
的对象。我认为没有其他方法来引用这个对象“public”
someMethod
。如果是我,我会将私有方法命名为
\u someMethod
,消除混淆,因为该方法是私有的,所以除了你之外,没有人会看到“丑陋”“nbame。我认为yui的标准是两者兼而有之。someMethod对吗?使用它来引用someMethod分配给的对象不是一个好主意,因为函数的这个值是由调用设置的,所以如果函数不是以
BLAH.someMethod()
的形式调用,它可能不会引用分配给
BLAH
的对象。现在我很困惑,那么在发生名称冲突时如何引用该方法?您要引用哪个方法-私有方法还是公共方法?我要引用私有方法。我以为.someMethod将引用Blah对象中的var someMethod=函数(..)定义。@Blankman-您的示例引用的是public方法。下面是访问私有方法的方法<代码>返回{someMethod:function(){someMethod(data);}}
现在我很困惑,那么当出现名称冲突时,如何引用该方法?您要引用哪个方法-私有的还是公共的?我要引用私有的。我以为.someMethod将引用Blah对象中的var someMethod=函数(..)定义。@Blankman-您的示例引用的是public方法。下面是访问私有方法的方法<代码>返回{someMethod:function(){someMethod(数据);}}