我正在尝试在具有子视图实例的View函数中创建一个hashmap,我在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() {
}
Run Code Online (Sandbox Code Playgroud)
您已经创建了一个函数并将其分配给一个隐式全局函数,该函数与它view创建的函数或实例无关.
您可以通过this.init在构造函数中指定或通过将其置于上面来分配函数view.prototype.
所以要么:
view = function() {
var subview;
// Note: You need code here to initialize `subview`
this.init = function() {
subview['search'] = new searchSubView();
};
};
Run Code Online (Sandbox Code Playgroud)
或者(注意我已经建了subview一个房产):
view = function() {
this.subview = /* ...initialize subview... */;
};
view.prototype.init = function() {
this.subview['search'] = new searchSubView();
};
Run Code Online (Sandbox Code Playgroud)
附注:
在该代码中,你正在成为隐形全球恐怖的牺牲品.你需要声明变量.
JavaScript代码中的压倒性约定是将初始大写用于构造函数,例如,View而不是view.
你也依赖于自动分号插入,我不建议这样做.了解规则并应用它们,尤其是您可以安全地缩小/压缩/压缩代码.
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |