在 javascript 中创建私有方法(各种)的常用方法是:
Class = function (arg0, arg1) {
var private_member = 0;
var privateMethod = function () {
return private_member;
};
}
上面的示例也可以使用函数声明而不是函数表达式来完成:
Class = function (arg0, arg1) {
var private_member = 0;
function privateMethod () {
return private_member;
}
}
这两种声明私有方法的方式有什么不同?(一个是表达式,另一个是声明)
例如,表达式显然会在每次调用构造函数时生成一个新函数。函数声明也会发生这种情况,还是因为函数声明是在解析时评估的,所以它只被评估一次?(与在执行时评估的函数表达式相反,你明白了。)
编辑:我知道 javascript 并不是真的的私有方法。我松散地使用这个词。
编辑:不是var functionName = function() {} vs function functionName() {}的重复,如果有任何关于 javascript 'classes' 的函数表达式与函数声明的重复。我的问题不是一般的函数表达式和函数声明之间的区别,而是它们在javascript“类”中的“私有成员”方面的区别。