javascript - 将函数放入 javascript 对象中是一种好习惯吗?

标签 javascript performance object

<分区>

我制作了一个构造函数,并计划制作大量对象。

function Cat(name) {
    this.name = name;

    this.meow = function () {
        ...
        ...
    }
}

比如说,函数 meow() 非常冗长。如果我创建很多猫,它会成为内存问题还是 javascript 会处理它?在这种情况下,创建静态函数而不是对象内的函数是否更好?

最佳答案

最好为此使用原型(prototype)。

function Cat(name) {}
Cat.prototype.meow = function(){};

大多数现代引擎(包括 chrome 的 V8)会将对象创建优化为可重复使用的路径,而如果使用 this.meow,则会在每个实例化时定义自定义隐藏路径。

不过,是否更好地转变为微观优化?这实际上取决于您的实现和环境。

有关原型(prototype)增强性能方式的更详尽的解释,请参阅 V8 开发人员 Toon Verwaest 的中等解释,Setting up prototypes in V8 .

关于javascript - 将函数放入 javascript 对象中是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56978872/

相关文章:

php - 我应该使用 <object> 还是 &lt;iframe&gt; 来加载视频?

database - SQLite 与序列化到磁盘

python - 在递归函数中将巨大的列表作为参数传递时的性能?

c++ - 具有多个参数的对象数组

python:更改类的打印

java - 为什么 Java 的序列化比 3rd 方 API 慢?

JavaScript——数组变量自动更新

javascript - 使用 Node.js 从网页中抓取 URL

javascript - Material-UI useMediaQuery 最初没有识别正确的断点

javascript - 将一个页面重定向到另一个页面 10 秒,然后再次重定向回原始 URL