Backbone对象默认不起作用

时间:2014-09-15 12:33:36

标签: javascript backbone.js

我正在学习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模型,则会返回一个空对象。但由于默认值,它不应该为空。

3 个答案:

答案 0 :(得分:3)

该属性为defaults,而非default

var Person = Backbone.Model.extend ({
    defaults: {
       // ...
    }
});

Backbone docs

答案 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!!';
    }
});

check this

答案 2 :(得分:1)

您应使用的属性为defaults,而非default

var Person = Backbone.Model.extend({
    defaults: {
        name: 'John Doe',
        age: 30,
        job: 'Web designer'
    }
});

有关详细信息,我建议您查看What is a model?并观察Backbone文档。