Функция со свойством в JavaScript? - PullRequest
3 голосов
/ 25 января 2011

У меня есть объект parameter, и у него есть свойство value. таким образом определяется

var parameter = {
    value : function() {
        //do stuff
    }
};

Моя проблема в том, что в некоторых случаях значение должно иметь собственное свойство с именем length

я могу это сделать? кажется, что установка this.length = foo не работает, как и parameter.value.length = foo после объявления объекта.

Ответы [ 3 ]

6 голосов
/ 25 января 2011

Проблема, кажется, связана с выбором слова «длина». В JavaScript функции являются объектами и могут иметь свойства. Все функции уже имеют свойство длины, которое возвращает количество параметров, с которыми объявлена ​​функция. Этот код работает:

var parameter = {
    value : function() {
        //do stuff
    }
};

parameter.value.otherLength = 3;

alert(parameter.value.otherLength);
2 голосов
/ 25 января 2011

parameter.value.length должно работать. Запустите следующее:

var obj = {
    method: function () {}
};
obj.method.foo = 'hello world';
alert(obj.method.foo); // alerts "hellow world"

Функции являются технически объектами, поэтому они могут иметь собственные методы и свойства.

0 голосов
/ 25 января 2011

Попробуй это.Это должно работать:

var parameter = {
  value : {
    length : ''
  }
}

var newLength = parameter.value.length = 10;
alert( newLength ); // output: 10

Если я понимаю ваш вопрос, в основном, в нотации литералов объекта, объект может содержать другой объект и так далее.Таким образом, чтобы получить доступ к внутреннему объекту и его свойствам, вам просто нужно сделать точечный натинг, как обычно, следуя иерархии.В приведенном выше случае 'параметр' , затем внутренний объект, 'значение' , затем свойство внутреннего объекта, 'длина' .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...