-1

以下の1行目でエラーがスローされる理由を誰か教えてください

Uncaught TypeError: Cannot read property 'age' of undefined.

私は JavaScript とバックボーンが初めてなので、このエラーは意味がありません。

ありがとう

<script>
var Person = Backbone.Model.extend({
    initialize: function(){
        console.log("Person is initialized");
    }
});

var People = Backbone.Collection.extend({
    model: Person,

    initialize: function(){
        console.log("People model is initialized");
    }
});

var person = new Person({age: 12});
var person2 = new Person({age: 15});
var person3 = new Person({age: 12});
var people = new People();
people.add(person);
people.add(person2);

// (1) var ages = _.where(people, {age: 12});
console.log(ages); 
</script>
4

1 に答える 1

1

あなたはこれが欲しいようです:

var ages = people.where({age: 12});

アンダースコアwhereバックボーン コレクションwhereは別物です。

Fabricio が言ったように、エラーは、一部のコードが未定義のプロパティを読み取ろうとしていることを意味します。foo.agewhere fooisのようなものundefinedは、このエラーを生成します。

あなたは JavaScript を初めて使用するというので... Chrome 開発ツールでは、エラーをクリックすると、エラーが発生した場所に移動できます。この場合、アンダースコアのソース コードに移動します。ライブラリでエラーが発生した場合、99% の確率で (ライブラリが広く使用されている場合)、使用しているものが間違っていることを意味し、ドキュメントをチェックして何が起こっているかを確認できます。

于 2013-03-29T23:38:18.990 に答える