Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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?_Javascript_Naming - Fatal编程技术网

可以使用名为“的参数”吗;“论点”;用JavaScript?

可以使用名为“的参数”吗;“论点”;用JavaScript?,javascript,naming,Javascript,Naming,我正在编写一个公开以下函数的库 function call(instance, func, arguments) { return { call: { instance: instance, func: func, arguments: arguments } } } 名称参数可以使用吗?这确实是最好的名称,但我不想与内置变量冲突。它在节点中工作。这是否适用于所有浏览器和JavaScript环境 编辑: 请注意,上述函数在节点中的工作

我正在编写一个公开以下函数的库

function call(instance, func, arguments) {
  return {
    call: {
      instance: instance,
      func: func,
      arguments: arguments
    }
  }
}

名称
参数
可以使用吗?这确实是最好的名称,但我不想与内置变量冲突。它在节点中工作。这是否适用于所有浏览器和JavaScript环境

编辑:

请注意,上述函数在节点中的工作情况与预期相同。我想知道的是,这是否适用于所有地方


除非有技术上的原因,否则我不想给它重命名。我真的希望这个面向外部的函数和文档能够反映这个参数名,因为返回的对象将被序列化为JSON并跨语言使用。

看起来就是这样
arguments
是一种获取函数所有参数的快速、类似数组的方法。请参见解释

也许您可以使用
参数

编辑:为了了解这个变量是如何工作的,我写了以下内容:

函数sayHelloTo(objectToSayHiTo){
警告(“你好”+参数[0]+“!”);
}

sayHelloTo(“世界”)可以在“草率模式”中使用名称
参数
,但不推荐使用

严格模式是禁止的,如果作者关心代码质量,所有新代码都应该使用严格模式

function a(arguments) {
    console.log(arguments);
}
a(1);
// Prints "1"

(function () {
    'use strict';
    function a(arguments) {
        console.log(arguments);
    }
    a(1);
}());
// Uncaught SyntaxError: Unexpected eval or arguments in strict mode
这类似于将变量命名为“对象”。也许在某些模糊的上下文中,使用该名称是有意义的,但这样做会使您无法访问全局
对象
对象及其上的有用方法,如
对象.keys
。类似地,通过做出这种糟糕的命名决策,您将无法再操作
参数
对象,该对象在JS中是varargs


为了提高代码的可维护性,最好避免创建这样的定时炸弹。严格模式下不允许使用它有一个很好的理由:它可能会给任何想使用
参数的人带来痛苦。

@KarolyHorvath为什么不呢?“这在所有浏览器和JavaScript环境中都有效吗?”。是的,这是我关心的对象。我想知道的是,尽管有内置对象,我是否仍然可以使用相同的名称。(在Node中,您可以。)@Joe-您最好不要使用任何已内置的单词。即使它可以在所有环境中工作,对于其他可能需要查看代码的开发人员来说,这也是一种很好的礼节。甚至是你自己。我大体上同意你的看法。然而,在这种情况下,更多的眼睛将放在面向外部的部件上,而不是放在功能内部。它也是一个很小的函数,所以它不应该让那些碰巧偷看内部的人感到困惑。严格模式很重要,因此从技术上来说,重用这个名称是不可行的。谢谢这个例子。