Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Backbone.model,我应该如何修改get方法_Javascript_Backbone.js - Fatal编程技术网

Javascript Backbone.model,我应该如何修改get方法

Javascript Backbone.model,我应该如何修改get方法,javascript,backbone.js,Javascript,Backbone.js,使用Backbone.model,我想更改get方法,以便在我未将参数传递给get方法时获取对象。。。请参见以下示例: Task = Backbone.Model.extend({}); task = new Task({ id: 2, name: "taskName" }); task.get("id"); // 2 // ***** ok ****** task.get("name"); // "taskName" // ***** ok ****** task.get(

使用Backbone.model,我想更改get方法,以便在我未将参数传递给get方法时获取对象。。。请参见以下示例:

Task = Backbone.Model.extend({});
task = new Task({
    id: 2, 
    name: "taskName"
});

task.get("id"); // 2 // ***** ok ******
task.get("name"); // "taskName" // ***** ok ******
task.get(); // undefined // ******* it should be {id: 2, name: "taskName"} *****
您可以使用task.attributes执行此操作:

attributes属性是包含模型状态的内部哈希

.

您可以使用task.attributes执行此操作:

attributes属性是包含模型状态的内部哈希

.

您可以覆盖Model.get,如文档中所述:

例如

您可以覆盖Model.get,如文档中所述:

例如


有没有理由不使用task.attributes?这一点也不愚蠢,get可以返回整个对象。这似乎很合乎逻辑。我认为一个人应该尽可能少写,让事情变得更明显。有没有理由不使用task.attributes?这一点也不愚蠢,get可以返回整个对象。这似乎是合乎逻辑的。我认为一个人应该尽可能少写,让事情变得更加明显。
Task = Backbone.Model.extend({
    get: function(attribute){
        if(typeof attribute  === "undefined"){
             return this.attributes;
             // Or, assuming you’ve also got json2.js available:
             // return this.toJSON();
        }
        else {
            return Backbone.Model.prototype.set.call(this, attribute);
        }
    }
});