Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript self.functionName和this.u functionName之间有什么区别?_Javascript_Function_Knockout.js - Fatal编程技术网

Javascript self.functionName和this.u functionName之间有什么区别?

Javascript self.functionName和this.u functionName之间有什么区别?,javascript,function,knockout.js,Javascript,Function,Knockout.js,我在敲除JS中有一个名为func1的函数 在ViewModel中调用函数作为this.func1=function(){}和this.\u func1=function(){} 两者是相同的,还是有任何区别?这两者之间没有任何有意义的区别: function ConstructorFunctionX() { this.func1 = function(){}; } 这是: function ConstructorFunctionX() { this._func1 = functio

我在敲除JS中有一个名为
func1
函数

ViewModel
中调用
函数
作为
this.func1=function(){}
this.\u func1=function(){}

两者是相同的,还是有任何区别?

这两者之间没有任何有意义的区别:

function ConstructorFunctionX() {
   this.func1 = function(){};
}
这是:

function ConstructorFunctionX() {
   this._func1 = function(){};
}
对于构造函数的使用者可以访问的成员,它们只是不同的名称(带下划线或不带下划线)

这个不同:

function ConstructorFunctionX() {
   var _func1 = function(){};
}

但不是因为名称以下划线开头,而是因为省略了
,从而允许
ConstructorFunctionX
外部的调用方无法访问该函数。

带有
下划线的函数是JavaScript中的私有函数或属性…@SarjanDesai我认为不太正确。它有时可以用作私有变量的命名约定,但下划线在JavaScript中没有实际意义。在OP的code
\u中,func1
是它的封闭函数的一个公开可见成员(非私有),尽管有下划线。@RoyJ你说得很对,肯定是个错误。我已相应地更正了我的答案。