使用带有函数和 mixins 的对象(而不是原型)是否会带来一些性能损失? [关闭]

2024-04-14

在 JavaScript 中执行 OOP 的一种常见方法是使用带有附加函数的对象,而不是使用内置的原型、构造函数和new操作员。 Mixin 通常用于通过粘贴成员变量来组合 2 个对象,模拟继承。

衡量这种做法是否会对性能产生影响是很困难的,因为在这种情况下,具体的基准测试并不能说明太多问题。是否存在这样的性能惩罚,其严重程度如何?


如果你使用构造函数、原型进行 OOP,new等等,这是V8(Chrome和Node.js中的JS引擎)专门优化的。您的用户属性甚至将与其内部属性并排存储,就像在 C++ 或 Java 对象中一样。

用于调优 V8 的基准之一是高度面向对象的,如下所示http://octane-benchmark.googlecode.com/svn/latest/deltablue.js http://octane-benchmark.googlecode.com/svn/latest/deltablue.js

如果您动态附加属性或执行其他一些卑鄙的技巧,您当然会混淆此启发式方法,并可能使自己陷入困境。

这当然是特定于引擎的。

我还应该提到一般免责声明,如果您正在执行诸如“单击处理程序显示文本区域”之类的 UI 代码,那么这并不重要。您可能会收集每个方法调用的堆栈跟踪,但不会注意到任何性能问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用带有函数和 mixins 的对象(而不是原型)是否会带来一些性能损失? [关闭] 的相关文章

  • 如何检查是否存在可能的路径?

    我正在开发一个基于 javascript 的实验性游戏 玩家必须在二维平铺地图上移动才能退出 请随意检查这个小提琴并演奏 http jsfiddle net moonlife 74vLd 我只是随机放置障碍物 但有时障碍物会挡住玩家和出口之
  • appendChild 错误:无法在层次结构中的指定点插入节点

    There is an error with the function appendChild Node cannot be inserted at the specified point in the hierarchy JS var a
  • HTML 和 标签有什么区别?

    HEAD 标签和 BODY 标签有什么区别 大多数 HTML 书籍仅 简短 提及 and 标签 但它们消失得很快 它们会影响浏览器呈现网页的方式吗 另外 它们会影响 javascript 的运行顺序吗 我的意思是 如果我里面有一个javas
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 有什么方法可以复制 div 的渲染 HTML 吗?

    我正在开发电子邮件签名生成器 我想通过按按钮复制最终签名 而不是手动选择签名并将其复制到剪贴板 这意味着我需要它们的图像 文本和样式 我尝试了几种变体 包括 w3schools 的变体 但没有成功 其中一些只是复制文本 但没有样式 例子 h
  • jQuery 可以操作插入的元素吗?

    我是 jQuery 的新手 我认为 jQuery 可以操作由代码添加的元素是合理的 但我发现现在还不能 function addVideo click function publisher append div div
  • 调用类实例方法 onclick javascript

    我有一个 javascript 文件 其中包含包含方法函数的类 我想知道如何从 onClick 事件调用类实例方法 function MyClass this instanceData Display Me this DisplayData
  • Visual Studio 改变 Ctrl-K-D 的工作方式

    In Visual Studio I m using 2012 is there any way of editing the way that Ctrl K D combinations handles its Auto Formatti
  • R参考类问题

    我正在尝试在 R 中创建一个简单的参考类 这是我的代码 R 初学者 MyClass lt setRefClass MyClass fields list a numeric b numeric methods list initialize
  • 在自动完成上添加 jQuery 延迟

    我正在尝试为应用程序创建 jQuery 自动完成 search input on keyup function search this val autocomplete div autocomplete get ajax search se
  • Chrome 开发工具命中代码但未命中断点

    我在 chrome 开发工具上启用了断点 并且在一行上有一个断点 我知道 chrome 正在运行 因为我将断点放在具有以下语句的行上 alert why is this not breaking 如果我在本地主机中找到该文件 则断点有效 断
  • 如何在 jQuery 中将标题转换为 URL slug?

    我正在 CodeIgniter 中开发一个应用程序 我试图在表单上创建一个字段来动态生成URL slug 我想做的是删除标点符号 将其转换为小写 然后用连字符替换空格 例如 Shane s Rib Shack 将变成 shanes rib
  • 仅在 Chrome 上我收到此错误:Uncaught TypeError: Illegal constructor [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 当我在 Chrome 上加载 jQuery 时 我会收到此错误 Uncaught TypeError Illegal constr
  • Pjax动画

    我终于让 pjax 工作了 但我还有另一个问题 如何添加一些 jquery 动画 如淡出 幻灯片旧内容和淡入 幻灯片新内容 默认情况下 pjax 只是更改内容 没有任何好看的效果 任何帮助将非常感激 此致 基本上 你有一堆事件 https
  • Rangy:插入符号下的单词(再次)

    我正在尝试创建一个预输入代码以添加到 wysihtml5 富文本编辑器 基本上 我需要能够插入人员 标签引用 例如 Twitter Github Facebook 我发现一些人试图实现同样的事情的代码 http jsfiddle net A
  • 非法使用break语句; javascript

    当这个变量达到一定数量时 我希望循环停止 但我不断收到错误 未捕获的语法错误 非法的中断语句 function loop if isPlaying jet1 draw drawAllEnemies requestAnimFrame loop
  • R 中使用 `UseMethod()` 与 `inherits()` 来确定对象的类

    如果我需要根据 R 对象的类以不同的方式处理它们 我可以使用if and else在单个函数内 foo lt function x if inherits x list Foo the list else if inherits x num
  • 如何使用 GreaseMonkey 让浏览器恢复“/”键?

    Lots of web pages seem to use the key for searching I d like to disable that because 100 of the time I want to use to se
  • 使 Bootstrap Popover 在悬停而不是单击时出现/消失

    我正在使用 Bootstrap 构建一个网站Popover http twitter github com bootstrap javascript html popovers我不知道如何使弹出窗口出现在悬停而不是单击时 我想做的就是当有人
  • 如何从除自身之外的其他(blazor)库引用js/css文件?

    我如何引用 使用位于引用的 blazor 项目中的 css cs 文件 该文件与 host cshtml 中的当前项目不同 我的意思是

随机推荐

  • 在 Android 中从一个 Activity 移动到另一个 Activity

    我想从一项活动转移到另一项活动 使用虚拟设备 当我单击按钮移动时 我的模拟器会显示一个对话框unfortunately SMS1 has stopped working SMS1 是我的应用程序名称 有人可以帮助我纠正我的代码吗 MainA
  • & 符号使我无法使用 jQuery 加载 XML

    我在 XML 文档中显示描述 然后使用 jQuery 将其加载到应用程序中 当我尝试使用 时 它会破坏代码的加载 我也尝试过 38 它也不起作用 是否有解决方法可以让我在 XML 中包含 符号 编辑 结构是
  • ResultSet.getTimestamp("日期") 与 ResultSet.getTimestamp("日期", Calendar.getInstance(tz))

    java util Date java util Timetamp似乎给许多人带来了极大的困惑 StackOverflow 中有很多问题 不幸的是我的问题有点扭曲 有 2 个 JDBC api 他们应该如何表现 RDBMS 之间是否存在一致
  • 如何保存单选按钮状态

    我正在开发Android应用程序 其中我打开自己的自定义对话框 当我选择单选按钮时 我使用单选按钮 毫无疑问它被选中并工作 但是当我再次打开对话框时 所有单选按钮都被取消选择 我想保存上一个按钮的状态 enter code here pri
  • Android AlertDialog 标题字体

    我正在尝试更改字体android support v7 app AlertDialog标题文本 方法一 TextView title TextView dialog findViewById android R id title retur
  • Redux 应用程序中每个减速器调用上深度复制状态有哪些缺点?

    进行深度复制是否有任何副作用state每次调用reducer函数时 在Redux应用程序中的appReducer上 我这么问是因为不可变的更新模式 https redux js org recipes structuring reducer
  • 区分鼠标和键盘触发onclick

    我需要找到一种方法来确定链接是否已通过鼠标单击或按键激活 a href Save a 这个想法是 如果他们使用鼠标点击链接 那么他们可以继续使用鼠标来选择下一步要做什么 但是 如果他们在页面上切换并切换到 保存 链接 那么我将打开下一行进行
  • 用于分类的 Python 向量化[重复]

    这个问题在这里已经有答案了 我目前正在尝试构建一个包含大约 80 个类别的文本分类模型 文档分类 当我使用随机森林构建和训练模型时 将文本矢量化为 TF IDF 矩阵后 该模型运行良好 然而 当我引入新数据时 我用来构建 RF 的相同单词不
  • 将 R 数据框中的多列转换为日期格式

    我有一个很大的数据文件 其中所有日期都已作为字符加载 我想将所有日期列更改为日期格式 大多数日期具有 y m d 格式 有些具有 Y m d 格式 有 25 列日期 因此单独更改每一列的效率很低 我可以 df DATE1 lt as Dat
  • Firebase:如何将虚 URL 添加到云函数?

    被简短提及here https stackoverflow com questions 45850375 use custom domain for google cloud function 但现在我已经将我的 GCP 项目连接到 Fir
  • 如何在“X”秒后调用 jquery 函数

    我有一个 jquery 函数 我需要在 Iframe 中打开网站后调用它 我正在尝试在 Iframe 中打开一个网络链接 打开它后我需要调用以下函数 那么我该怎么做呢 这是我的功能
  • xcode 4.5 崩溃日志符号除应用程序行外

    我怎样才能象征一切 这是一个例子 所以我正在谈论 Thread 0 name Dispatch queue com apple main thread Thread 0 Crashed 0 CoreFoundation 0x351642cc
  • 如何在标签中的 tkinter 上制作字幕?

    我有这个源代码 from Tkinter import import tkMessageBox import time class Window Tk def init self parent Tk init self parent sel
  • 将图像文件存储在 IndexedDB 中

    我在尝试将图像文件存储在 IndexedDB 中时遇到问题 我抓取文件对象并尝试将其推送到 IndexedDB 中 但它似乎抛出错误 DOM Exception DATA CLONE ERR 25 如何将如下所示的文件对象转换为可以存储在
  • 如何在Eclipse中添加JBoss服务器?

    我是 JBoss 的新手 刚刚安装了 Eclipse 我已将一个项目添加到工作区 现在我想将其部署到 Jboss 服务器 然而 在新的服务器运行环境列表中 JBoss 不可用 我正在使用以下 Eclipse 版本 面向 Web 开发人员的
  • 从 UIViewController 返回 NSString

    我想返回一个NSString 从一个名为InputUIViewController的UIViewController 到之前的一个名为CallerUIViewController的UIViewController 它启动了InputUIVi
  • F# 图表示例

    我想使用内置功能或免费库在 F 中做一些基本的图表 我会对一个非常基本的例子感到非常非常满意 如果可能的话 饼图 示例数据 John 34 Sara 30 Will 20 Maria 16 其中整数是饼图中要表示的百分比 我最近安装了 VS
  • 使用 D3 在地图上绘制点

    我正在尝试使用基于纬度和经度的 D3 地理库在地图上绘制一些点 但是 当我将这些值传递到投影函数时 它会导致坐标超出 SVG 图像的范围 我的代码基于文档中提供了这个示例 http bl ocks org mbostock 3757119
  • 为什么在 Angular 指令的链接函数中“this”为空?

    我正在尝试使用 TypeScript 和 Angular 编写动态模板 但由于某种原因 this 关键字始终为空 因此我无法访问我的私有成员 compile 有任何想法吗 非常感谢 指示 namespace ROD Features Pla
  • 使用带有函数和 mixins 的对象(而不是原型)是否会带来一些性能损失? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在 JavaScript 中执行 OOP 的一种常见方法是使用带有附加函数的对象 而不是使用内置的原型 构造函数和new操作员 Mixin 通常