我们如何限制javascript中的继承?

时间:2014-05-29 05:52:43

标签: javascript inheritance

是否可以在javascript中限制继承?我在互联网上搜索了javascript中对继承的限制,但没有找到任何有用的信息。有人可以解释这个继承限制的话题吗?我想限制我的单例对象在其他对象中的继承属性。

1 个答案:

答案 0 :(得分:1)

您不能在javascript中限制继承。如果您有一个初始化对象的公共构造函数,则任何其他对象都可以使用它来创建派生对象。

您可以使用某些声明方法将许多实例变量甚至方法设为私有(请参阅here以供参考),这可能会降低派生对象的实用性或功能,但仍然无法阻止它。 / p>

也许如果你解释一下你正在努力解决的问题,我们可以就如何解决它提出更具体的想法。


好了,既然你已经解释过你只想要一个单身人士,那么我建议你使用这样的单身设计模式:

var Singleton = (function () {

    var instance;

    function createInstance() {
        var object = new Object("I am the instance");
        return object;
    }

    return {
        getInstance: function () {
            if (!instance) {
                instance = createInstance();
            }

            return instance;
        }
    };
})();

构造函数是私有的(包含在闭包中),因此它不能被其他代码调用,获取对象的方法是只返回单个实例的函数。当然,JS中对象的任何属性/方法都可以被复制,但像这样的单例可以将实例数据保存在闭包中,如果它想要它无法复制的地方。

参考文献:

Learning Javascript Design Patterns - The Singleton Pattern

Singleton Design Pattern

Javascript Singleton Design pattern

Javascript Design Patterns: Singleton

相关问题