JavaScript和对象初始化

JavaScript and object initialization

本文关键字:初始化 对象 JavaScript      更新时间:2023-09-26

我决定用javascript"更深入",并在ECMA6之前尝试掌握ECMA5技能,现在我被困在对象创建和初始化,什么版本更好,更实用,更好阅读等等。用哪一个作为基础。所以我尝试的是:

版本1,在搜索的指南中最受欢迎

;(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);
})();

Version4,这个是高级开发人员向我展示的,在指南中不太受欢迎,或者只是我没有注意到,但经过一些解释,它可能是我的最爱。

(function() {
    var magic = (function () {
        function publicDoStuff() {
            alert('Magic');
        }
        return {
            doStuff: publicDoStuff
        };
    })();
    document.addEventListener('DOMContentLoaded', function () {
        magic.doStuff();
    }, false);
})();

我喜欢为简单的对象保持简单

var magic = {
    doStuff: function () {
        alert('Wow!');
    },
};
document.addEventListener('DOMContentLoaded', function () {
    magic.doStuff();
}, false);

如果你使用一个对象的许多实例,那么使用原型会更快

Magic = function() {
};
Magic.prototype.doStuff = function() {
    alert('Wow!');
};