对于模块模式,我正在执行如下操作:
(function(namespace) {
// tons of code
// blabla
})(window.myGlobalNamespace);我该如何划分密码?我可以想出几种方法,比如使用名称空间的层次结构,或者通过window.myGlobalNamespace.additionalFunc = function () {//blabla}扩展外部对象。其他的方法是什么?优点和缺点是什么?哪一个被认为是更好的练习?
这两个答案都暗示着RequireJS。请您解释一下RequireJS如何解决这些问题:
first.js:
(function(context) {
var parentPrivate = 'parentPrivate';
})(window.myGlobalNamespace);second.js:
(function(context) {
this.childFunction = console.log('trying to access parent private field: ' + parentPriavte);
}(window.myGlobalNamespace.subNamspace);main.js:
window.myGlobalNamespace.subNamspace.childFunction(); // doesn't work人们也能做到
window.myGlobalNamespace.subNamspace.childFunction = function() {alert("a new function");}来改变我的代码的行为!
在这里,有两个问题:
更重要的是,所有的公共职能都可以改变和取代。我不希望这种事发生。
我不明白RequireJS是如何解决这些问题的。有人能说点什么吗?
https://stackoverflow.com/questions/20311604
复制相似问题