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

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

Je ne peux pas comprendre pourquoi cela retourne un identifiant inattendusimples javascript, les fonctions dans les objets

- modifier une autre question grâce

en javascript les bonnes pièces qu'il a

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

est-ce différent de ce que je fais?

+0

@fxmile - Cela ressemble à une erreur dans le livre. Est-ce à la page 28 (ou à proximité)? Quelque chose de similaire est répertorié dans [errata for the book] (http://oreilly.com/catalog/errata.csp?isbn=9780596517748) pour cette page. – user113716

Répondre

5

Vous devez utiliser un , à l'intérieur des littéraux d'objet lors de la définition des clés et des valeurs pour les séparer, et non ;.

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

Il devrait y avoir ,, pas ;.

2

Pour répondre à votre deuxième question, il semble qu'il y ait une faute de frappe dans le livre.

L'exemple incorrect est:

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

L'exemple est correct:

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

Notez la virgule sur la ligne value: 0,.

Comme d'autres l'ont mentionné, la virgule devrait être utilisée (au lieu du point-virgule) pour les littéraux d'objet.

Questions connexes