在我的项目中,我为每个网页创建模块并添加到一个名为View
:
应用程序.js
var View = (function() {
var View = function() {
this.attributes = {
baseUrl : '',
urls : {}
};
};
View.prototype.setUrl = function(url) {
this.attributes.baseUrl = url;
};
View.prototype.getUrl = function() {
return this.attributes.baseUrl;
};
return new View();
})();
搜索视图.js
var View = View || {};
var SearchView = View.SearchView = (function() {
var Private = {
search : function(url) {},
loadSearchResult : function() {},
clearSearchForm : function() {}
};
Private.search = function(url) {
ajax(url,...);
this.loadSearchResult();
};
var SearchView = function() {
this.settings = {};
};
SearchView.prototype.loadEventBindind = function() {
$(document)
.on('click','#search-button', function() {
Private.search(View.baseUrl);
})
.on('click','#reset-search', function() {
Private.clearSearchForm();
});
};
return new SearchView();
})();
搜索.html
<script type="text/javascript" src="media/scripts/Modules/App.js"></script>
<script type="text/javascript" src="media/scripts/View/SearchView.js"></script>
<script type="text/javascript">
View.setUrl('http://www.set.com/');
View.SearchView.loadEventBindings();
</script>
此代码在 Chrome 和 Firefox 中正常运行,但在 IE 中抛出错误:
'
View.SearchView
' 是null
或不是一个对象
IE 不支持这种创建对象的方式吗?