JavaScript 函数参数作为私有变量
javascript function arguments as private variables
我记得在某处读到函数参数在函数中变成了私有变量,所以我尝试了这个:
var node = function(nParent,nName,nContent){
this.init = function(){
alert(nName+" "+nParent+" "+nContent);
}
};
var a = new node("A - parent","A - name","A - content");
var b = new node("B - parent","B - name","B - content");
a.init();
b.init();
它会提醒正确传入的参数,所以可以使用这个而不是这样的东西:
var node = function(nParent,nName,nContent){
var parent = nParent;
var name = nName;
var content = nContent;
this.init = function(){
alert(name+" "+parent+" "+content);
}
};
我知道如果我想在将参数分配给私有变量之前对参数进行任何形式的额外验证检查,我将不得不使用第二个版本,如果参数已经是永远不会去任何地方的私有变量,我只是不想浪费空间,这是合理的做法吗?谢谢
当然没关系。这些参数是实例化的变量,与您设置它们的其他变量没有明显差异。
现在,如果您没有使用任何命名参数,而是使用arguments
,那么就会有所不同:代码可读性,均匀性能(使用 arguments
会受到惩罚)。
所有这些的唯一缺点是您的变量定义不会全部位于同一个位置。(假设此函数中将有更多的变量定义和赋值,超出传递的参数。
是的;这完全没问题。
相关文章:
- 带有两个变量函数的Ajax提交表单
- 设置变量函数不起作用
- 为什么使用 ||在变量函数声明中
- Javascript 变量函数不保留值
- 为什么要在函数定义之外引用静态变量(函数属性)
- jQuery 变量函数无法运行
- 循环中的变量函数定义
- javascript onclick设置为变量函数名
- JavaScript:调用已启动类(数据包处理程序)的变量函数
- Javascript测试存根全局变量函数
- Aptana能否识别其他文件中定义的变量/函数
- jquery将其传递给变量函数
- 传递一个变量函数到数组[Javascript]
- 如何使用' this '像一个对象,并通过字符串获得它的变量/函数
- javascript变量/函数的首字母是什么意思?
- Javascript .apply带有变量函数名
- 在JavaScript中添加一个全局变量/函数(特别是NativeScript)
- 变量函数未定义错误
- AngularJS-继续检查变量/函数
- Javascript从本地向全局变量函数添加行