“理解”;这";在主干/Javascript中
我试图理解如何用主干创建对象和方法。我是这样开始的:“理解”;这";在主干/Javascript中,javascript,backbone.js,Javascript,Backbone.js,我试图理解如何用主干创建对象和方法。我是这样开始的: Person = (function () { return Backbone.Model.extend({ defaults: { name: 'jon' }, changeName: function (newName) { console.log(newName); this.name = newName; } }); })(); var p1 = ne
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'));
我不明白的是,为什么我的p1.name属性没有改变。我认为它与this.name中的“this”有关,因为我仍在试图理解“this”是如何工作的,但我认为我缺少了其他东西,因为
this.name=newName
和name=newName
都不起作用。谢谢 name
包含在模型的属性中:p1.attributes.name
。这就是为什么要使用get()
访问它。如果要更改名称
,可以执行以下操作之一:
p1.set("name", "samantha")
p1.set({"name": "samantha"})
通过传入对象,后者允许您一次设置多个属性
根据报告:
这样,主干可以在更改属性时触发change
事件,或者在调用toJSON()
时提供属性的序列化版本
应该是
...
changeName: function (newName) {
console.log(newName);
this.set ({'name': newName});
}
...
...
changeName: function (newName) {
console.log(newName);
this.name = newName;
}
...
...
changeName: function (newName) {
console.log(newName);
this.set ({'name': newName});
}
...