我是Javascript的新手(即正确学习Javascript).我正在阅读第7章"Web开发人员专业Javascript第3版"中的"静态私有变量"部分.
我得到了这段代码,但我觉得它不理想:
(function(){
//private variables and functions
var privateVariable = 10;
function privateFunction(){
return false;
}
//constructor
MyObject = function(){
};
//public and privileged methods
MyObject.prototype.publicMethod = function(){
privateVariable++;
return privateFunction();
};
})();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,他们依赖于通过省略"var"来创建MyObject作为全局变量.但是,在严格模式下,您不能省略var关键字,此代码会导致错误.
我的重写是否正确?
var MyObject = (function(){
//private variables and functions
var privateVariable = 10;
function privateFunction(){
return false;
}
var MyObject = function (){
}
//public and privileged methods
MyObject.prototype.publicMethod = function(){
privateVariable++;
return privateFunction();
};
return MyObject;
})();
Run Code Online (Sandbox Code Playgroud)
我很困惑为什么这本书会省略这个问题的解决方案,并采用惰性方法.我坚信在我的所有代码中使用"严格模式".
是的,您的重写是正确的。不过,我建议你改变这本书。这是一个非常好的系列: https ://github.com/getify/You-Dont-Know-JS
这本书提供了非常好的示例和用法+解释: https://addyosmani.com/resources/essentialjsdesignpatterns/book/
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |