我决定用javascript“深入”,在ECMA6尝试掌握ECMA5技能之前,现在我坚持使用对象创建和初始化,什么版本更好,更实用,更好阅读等等。 哪一个坚持并用作基础。所以我尝试了:
版本1 ,并且在google搜索指南中最受欢迎
;(function() {
var magic = magic || {};
magic.doStuff = function() {
alert('Magic');
};
window.magic = magic;
document.addEventListener('DOMContentLoaded', function() {
magic.doStuff();
}, false);
})();
版本2 ,与版本1完全相同,语法略有不同
(function () {
var magic = {
doStuff: function() {
alert('Magic');
}
};
document.addEventListener('DOMContentLoaded', function () {
magic.doStuff();
}, false);
})();
版本3 ,这个对我来说最糟糕,语法困难,错误空间更大,我甚至不确定它是否写得正确
(function () {
var magic = (function () {
magic.doStuff = function () {
alert('Wow!');
};
return magic;
});
document.addEventListener('DOMContentLoaded', function () {
(new magic()).doStuff();
}, false);
})();
第4版,这个是高级开发人员向我展示的,在导游中并不那么受欢迎,或者只是我没有注意到它,但经过一些解释可能是我最喜欢的。
(function() {
var magic = (function () {
function publicDoStuff() {
alert('Magic');
}
return {
doStuff: publicDoStuff
};
})();
document.addEventListener('DOMContentLoaded', function () {
magic.doStuff();
}, false);
})();
答案 0 :(得分:1)
我喜欢简单的对象
var magic = {
doStuff: function () {
alert('Wow!');
},
};
document.addEventListener('DOMContentLoaded', function () {
magic.doStuff();
}, false);
如果您使用对象的许多实例,则its faster to use prototype
Magic = function() {
};
Magic.prototype.doStuff = function() {
alert('Wow!');
};