我正在真正学习使用 JavaScript 对象的细微差别,但遇到了障碍。
我有一组“命名空间”对象来分割 DOM 和模型以进行操作。下面是代码:
function Sandbox2(){
this.page = {
FirstName: document.getElementById("FirstName")
, LastName: document.getElementById("LastName")
, Email: document.getElementById("Email")
};
this.model = {
FirstName: "James"
, LastName: "Eggers"
, Email: "James.R.Eggers@gmail.com"
};
this.behavior = {};
this.bindPageToModel = function(){
for(var property in this.page){
if (property){
property.value = this.model[property];
}
}
};
this.bindModelToPage = function(){
for(var property in this.model){
if (property){
this.model[property].value = this.page[property];
}
}
};
};
使用 JsTestDriver,我正在做一些测试来尝试页面和模型对象的一些东西。具体测试如下:
"test ModelBinding should be allowed." : function(){
var sandbox2 = new Sandbox2();
var page = sandbox2.page;
page.FirstName = "Test";
page.LastName = "Account";
sandbox2.bindModelToProperty();
assertEquals("Ensure the new values took.", page.FirstName, sandbox2.page.FirstName);
assertEquals("New Page values should be in the model.", "Test", sandbox2.model.FirstName);
}
在上面的测试中,第一个assertEquals
通过;但是,第二个测试解析sandbox2.model.FirstName
为“James”(初始值)。
有人对我如何更改代码(原始代码或测试代码)以允许我将page
对象的值映射到对象有任何建议model
吗?