我正在尝试在具有子视图实例的View函数中创建哈希图,这是在View的init方法中完成的。但是它给出了一个错误,即视图的init()不存在。我在这里做错什么了吗?提前致谢。
view = function() {
var subview;
init = function() {
subview['search'] = new searchSubView();
}
}
check = function() {
console.log("clicked");
var view1= new view();
view1.init();
}
searchSubView = function() {
}
您已经创建了一个函数并将其分配给隐式全局变量,该全局变量与它所view
创建的函数或实例无关。
您可以通过this.init
在构造函数内分配或将其放在上来分配功能view.prototype
。
所以:
view = function() {
var subview;
// Note: You need code here to initialize `subview`
this.init = function() {
subview['search'] = new searchSubView();
};
};
或(请注意,我已经subview
拥有财产):
view = function() {
this.subview = /* ...initialize subview... */;
};
view.prototype.init = function() {
this.subview['search'] = new searchSubView();
};
旁注:
在该代码中,您经常成为“隐含全球性恐怖”的牺牲品。您需要声明变量。
JavaScript代码中的压倒性惯例是将初始大写形式用于构造函数,例如View
而不是view
。
您还依赖于自动分号插入,我不建议这样做。学习规则并应用它们,尤其重要的是,您可以安全地缩小/压缩/压缩代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句