2010-12-08 3 views
3
var rooms = { 
bedroom: { 
    info: "A dusty bed lies sideways in the midle of the room"; 

    north: function () { 
     //this function returns an error 
    } 
} 
}; 

Я не могу понять, почему это возвращает непредусмотренный идентификаторпростых JavaScript, функции в объектах

- редактировать благодаря другому вопросу

в JavaScript хорошие части он имеет

var myObject = { 
    value: 0; 
    increment: function (inc) { 
     this.value += typeof inc === 'number' ? inc : 1; 
    } 
}; 

это отличается от того, что я делаю?

+0

@fxmile - Похож на ошибку в книге. Это на странице 28 (или рядом)? Нечто похожее указано в [errata для книги] (http://oreilly.com/catalog/errata.csp?isbn=9780596517748) для этой страницы. – user113716 2010-12-08 21:35:57

ответ

5

Следует использовать , внутри литералов объекта при определении ключей и значений для их разделения, а не ;.

var o = { name: 'john', age: 13 } 
2
the room"; 

Там должно быть ,, не ;.

2

Чтобы ответить на второй вопрос, в книге есть опечатка.

Неправильный пример:

var myObject = { 
    value: 0; 
    increment: function (inc) { 
     this.value += typeof inc === 'number' ? inc : 1; 
    } 
}; 

Правильный пример:

var myObject = { 
    value: 0, 
    increment: function (inc) { 
     this.value += typeof inc === 'number' ? inc : 1; 
    } 
}; 

Примечание запятой на линии value: 0,.

Как уже упоминалось, запятая должна использоваться (вместо точки с запятой) для объектных литералов.

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