javascript - 创建构造函数后使用原型(prototype)有什么好处?

标签 javascript performance javascript-objects

如果你有一个像

这样的构造函数
var SomeClass = function(){
    this.a= "";
    this.b= "";
}

然后假设您使用原型(prototype)添加另一个方法

SomeClass.prototype.fn = function fn(){
    console.log(this.a);
 };

为什么要使用 prototype ,你可以将这个方法添加到你的构造函数中 功能?

最佳答案

有几个好处:

  1. 它创建一个 fn 函数,由使用该构造函数创建的所有对象重用;这比每个对象上的单独函数更节省内存。

  2. 让对象保持与其原型(prototype)的动态链接意味着当您向原型(prototype)添加方法时,它们可用于已经存在的对象。

  3. 只有一个函数所有相关对象重用意味着您可以在必要时更新该函数在运行时,只在一个地方,并使用更新后的函数由所有相关对象,甚至是已经存在的对象。

  4. 在构造函数的 prototype 属性上提供它意味着它可以用于其他对象,而不是通过构造函数创建;这个经常用,效果不错,比如:

    Array.prototype.forEach.call(
        document.querySelectorAll("div"),
        function(div) {
            // ...
        }
    );
    

关于javascript - 创建构造函数后使用原型(prototype)有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38916200/

相关文章:

python - 如何加快 pyqtgraph 中的实时绘图速度

performance - 为什么我的超便携笔记本电脑 CPU 不能在 HPC 中保持最佳性能

javascript - 如何检查对象是否为数组?

javascript:在嵌套对象中定义对父对象的引用

javascript - "Page-Specific Javascript"在 rails 上使用 stimulusjs

javascript - 从文本中消除特定模式

javascript - jQuery Mobile - 如何根据上一页更改页面行为

javascript - 我在 nuxt.js 中找不到 process.server

performance - Option.isEmpty 的更快实现?

javascript - 如何在 javascript 的类中用对象包装函数?