2013-05-22 3 views
0

Можно ли присвоить значение объекту с использованием свойства текущего объекта, декалированного?Свойства объекта javascript с использованием свойств self

var myObject = new Object({ 
    a: 1, 
    b: 2, 
    c: this.a + this.b // is this possible ? (or even myObject.a + myObject.c) 
}); 

Я знаю, что могу просто объявить его ниже, но возможно ли это, как указано выше?

myObject.c = myObject.a + myObject + b; 
+0

Почему вы не попробовали? – VisioN

+0

http://jsfiddle.net/ -> try -> посмотреть, что произойдет. –

+1

@VisioN - Предположительно, у него есть, и он не работал, поэтому он спрашивает, есть ли другой синтаксис, который действительно работает. – Quentin

ответ

1

Простой лог консоли должен был показать вам, почему ваш код работает, но дает NaN. После изменения кода на образец ниже и запустить его:

var myObject = new Object({ 
    a: 1, 
    b: 2, 
    c: console.log(this.a + this.b) 
}); 
myObject.c; 

результат был: NaN почему? При создании myObjectthis был привязан к document объекта, который, по-видимому, не обладают свойствами a и b .Perhaps это будет работать для вас:

var myObject = new Object({ 
    a: 1, 
    b: 2, 
    c: function() { 
     return this.a + this.b; 
    } 
}); 
myObject.c(); 

Проверьте это вопрос: stackoverflow.com/questions/133973/, чтобы понять больше о this в JavaScript объект литерал

Смежные вопросы