Можно ли ссылаться на аргументы в JavaScript с использованием синтаксиса ColdFusion? - PullRequest
0 голосов
/ 23 марта 2012

В ColdFusion, если вы хотите сослаться

<cfargument name="x">

тогда вы говорите:

arguments.x

В JavaScript, если у вас есть функция:

var myFunction = function(x) {

тогда, есть ли способ явно ссылаться на область действия аргументов, например:

arguments[0].x

или что-то такое, что вы все просматриваете.

Ответы [ 3 ]

3 голосов
/ 23 марта 2012

Невозможно достичь той же функциональности, используя переменную arguments, так как она не содержит информации об именах параметров.Чтобы обойти это, вы можете перейти от использования нескольких параметров к одному составному объекту параметра, который содержит фактические значения параметров в своих членах.

<script>
   function abc(params) {
    var x = params.x;
     var y = params["y"];
  }

   abc( { x: 10, y: "hello" });
</script>

Таким образом, однако вы потеряете часть читабельности кода в сигнатуре функции., плюс вы должны указать имена параметров на вызывающей стороне.

1 голос
/ 23 марта 2012

Боюсь, что нет. Вы можете явно использовать x или arguments[0], но не более того. Если, как указано другими, вы не передадите объект.

1 голос
/ 23 марта 2012

Вы можете ссылаться на псевдопеременную arguments, но аргументы индексируются по номеру, а не по имени. Это хорошая идея, чтобы не связываться с arguments напрямую; распространенная идиома - преобразовать ее в реальный массив:

var args = Array.slice.call(arguments, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...