javascript - 在匿名范围内使用 Javascript Prototype 对象

标签 javascript prototype

我有两种不同的方式在匿名范围内使用 Javascript 对象。

(function(){

    function MyObject() {
        this.MyMethod = function() {
            //code here
        }
    }

    first = new MyObject();
    first.MyMethod();
})();

还有

(function(){

    function MyObject(){}; 

    MyObject.prototype.MyMethod = function() {
        //code here
    }

    first = new MyObject();
    first.MyMethod();
})();

我知道原型(prototype)版本更好,但不确定使用匿名范围是否会带来好处/缺点。

最佳答案

在匿名范围内使用没有区别。

好处与在全局范围内使用相同。

如果您实例化 MyObject 的次数非常多,“原型(prototype)”版本将避免在每个实例中复制该方法,从而避免浪费资源(内存)。

如果实例化 MyObject 一两次,它对于全局作用域中的立即函数没有任何影响。

关于javascript - 在匿名范围内使用 Javascript Prototype 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14354803/

相关文章:

javascript - 精确拖放到文本区域或可编辑的内容中,并在拖动时显示插入符号

javascript - 如何列出 props 变量中的项目?

javascript - 在其自己的原型(prototype)数组中调用函数时出错(js)

javascript - 防止更改 Javascript 原型(prototype)对象中的属性值

javascript - React onClick setState 然后运行函数

javascript - IE 仅 javascript 错误与 getElementsByTagName

javascript - 使用页面对象模型在 Protractor 测试中需要断言表单字段

javascript - 原型(prototype) - TypeError : A. TravelTo 不是函数

c++ - hpp/cpp split with global function : Multiple definition of . .. 错误

javascript - for循环索引如何提升原型(prototype)链?