Cry*_*tal 2 javascript backbone.js
我试图了解如何使用Backbone创建对象和方法.我从这样的事情开始:
Person = (function () {
return Backbone.Model.extend({
defaults: {
name: 'jon'
},
changeName: function (newName) {
console.log(newName);
this.name = newName;
}
});
})();
var p1 = new Person();
console.log(p1.get('name'));
p1.changeName("samanatha");
console.log(p1.get('name'));
Run Code Online (Sandbox Code Playgroud)
我不明白的是,为什么我的p1.name属性没有改变.我认为它有一些东西需要与"本"在this.name因为我仍然在试图掌握如何"这"工作,但我觉得我失去了,因为别的事情this.name = newName
和name=newName
两个不工作.谢谢!
name
包含在模型的属性中:p1.attributes.name
.这就是你使用它访问它的原因get()
.如果要更改name
,可以执行以下操作之一:
p1.set("name", "samantha")
p1.set({"name": "samantha"})
Run Code Online (Sandbox Code Playgroud)
通过传入一个对象,后者允许您一次设置多个属性.
根据文件:
Please use set to update the attributes instead of modifying them directly.
Run Code Online (Sandbox Code Playgroud)
这样,Backbone可以执行change
更改属性时触发事件或在调用时提供属性的序列化版本等操作toJSON()
.