我正在学习Backbone.js,我正在学习一个教程。在本教程中,使用默认值创建Person
对象。但是当我尝试使用命令var person = new Person
访问这些值时;然后看看是否在控制台中使用person.get('name')
命令创建了对象,我得到了undefined
。在本教程中,这应该打印John Doe
。当Person
对象有默认值时,为什么我会回复未定义?
// main.js
var Person = Backbone.Model.extend ({
default: {
name: 'John Doe',
age : 30,
job : 'Web designer'
},
work : function() {
return this.get('name') + ' is working!!';
}
});
<head>
<script src="js/underscore.js"></script>
<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/backbone.js"></script>
<script src="js/main.js"></script>
</head>
如果我使用person.toJSON()
将人员打印到JSON模型,则会返回一个空对象。但由于默认值,它不应该为空。
答案 0 :(得分:3)
该属性为defaults
,而非default
:
var Person = Backbone.Model.extend ({
defaults: {
// ...
}
});
答案 1 :(得分:3)
属性名称为defaults
var Person = Backbone.Model.extend ({
defaults: {
name: 'John Doe',
age : 30,
job : 'Web designer'
},
work : function() {
return this.get('name') + ' is working!!';
}
});
答案 2 :(得分:1)
您应使用的属性为defaults
,而非default
。
var Person = Backbone.Model.extend({
defaults: {
name: 'John Doe',
age: 30,
job: 'Web designer'
}
});
有关详细信息,我建议您查看What is a model?并观察Backbone文档。