基于原型的 OO 与基于类的 OO 相比有哪些优点?

2024-04-12

为什么基于类的 OO 如此受欢迎,而不是基于原型的 OO?他们在学校教授后者吗?尽管 Javascript 是基于原型的,但大多数人主要是在功能上使用它,或者通过尝试模拟基于类的系统的框架。

我知道Sun已经做了一些研究Self http://research.sun.com/self/- 基于原型的面向对象技术还有其他知识来源吗?最好是可以自学的东西。

我找到了一本书,其中包含已发表的论文:基于原型的编程:概念、语言和应用 https://rads.stackoverflow.com/amzn/click/com/9814021253

有人读过吗?

--

所以我对给我最多的答案给予了赏金。尽管如此,我还是不太满意。我希望听到更多技术性的答案。也许我没有很好地解释自己。


原型继承的优点是它可能允许以简单的方式进行花哨的元编程,因为原型链很容易操作。这是一个相当学术性的优势,因为元编程在 99% 的情况下都是错误的答案。例如,您可以拥有一个带有特殊 DSL 的 Javascript Key-Value Observer 风格的数据操纵层,该层可以通过原型交换在离线时的本地 SQLite 支持和在线时基于 REST 的服务器存储之间透明地切换。我不确定这是最好的方法,但这是我这么晚能想到的最好方法。这不是你通常想要在项目代码中做的事情,因为一旦你开始在多层上进行这种间接的调试,调试起来就很困难,但是当你将它保存在库中时,它也不错。

另一个不太有用的优点是它允许您设计自己的类系统。我说没那么有用,因为或多或少所有的 javascript 库都有自己的稍微不兼容的方法来组合“类”。

有很多人回复说他们将继承模型与该模型中实现的语言混合在一起。 JavaScript 是动态的、弱类型的,因此很难使用工具,这一事实与它作为一种原型语言无关。

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

基于原型的 OO 与基于类的 OO 相比有哪些优点? 的相关文章

随机推荐

  • Actor 中的 WebSocket.acceptWithActor 和 @Inject()(播放 2.5)

    WebSocket acceptWithActor不使用 Guice 实例化一个新的 Akka actor 在 Play 2 4 中 仍然可以通过导入来为我的 actor 使用注入器play api Play current 片段来自Rea
  • Fortran 中指数函数的 DEXP 或 EXP?

    我有两个非常简短的问题 1 我刚刚读到DEXP is the archaic的形式EXP 这是否意味着不应再使用它 我一直以为DEXP 双精度等于EXP 2 指数函数的范围是多少 它依赖于编译器吗 问题 1 在现代 Fortran 中 最好
  • 如何在magento中添加自定义模块

    您好 我想为页脚创建一个自定义模块 用于显示新闻标题 还没有使用自定义模块 我该怎么做 谁能告诉我创建自定义模块的简单步骤 Thanks 您会发现的最佳资源是 模块创建器扩展 http www magentocommerce com ext
  • 如何在android xml布局中将9个按钮放在3行中?

    我正在尝试制作一个井字游戏 android 版本 我想让所有 9 个按钮根据设备的宽度和高度自动调整大小 并将它们均匀地放在 3 3 网格中 但我现在只能设置它们的尺寸的数字 谁能告诉我如何让他们使用父母的高度和宽度并计算他们的尺寸 另外
  • 静态库 (.a) 和共享库 (.so) 之间的文件格式差异?

    我知道关于共享库和静态库的用例有很多问题 这个问题与此无关 我问的是磁盘上存储的文件格式的差异 为什么问题是 两者之间有什么区别 或者它们完全相同 只是用途不同 我相信它们是不一样的 因为在共享库上运行 nm 需要 D 标志 显然它需要做一
  • 尝试检索 Google 日历活动时 WEB_HOOK 通道不可用

    我正在尝试使用Google 日历的推送通知 https developers google com calendar v3 push 回调端点托管在 Heroku 上 应用程序名称 herokuapp com已在 Search Consol
  • 如何过滤上传对话框中可以看到哪些文件?

    在没有 ActiveXes Flash 或 Java Applet JavaScript 也可以 等客户端对象的 ASP NET MVC 应用程序中 是否可以想象当弹出上传文件对话框时 它只会显示我指定的文件 例如 在用于选择要上传的文件的
  • 如何在 django 中创建新的数据库连接

    我需要创建一个新的数据库连接 会话 以避免 django 事务中的 MySql 过程意外提交 如何在django中设置它 我尝试在设置文件中复制数据库配置 它对我有用 但似乎不是一个好的解决方案 有关更多详细信息 请参阅我的代码 class
  • javascript - 捕获语法错误并运行备用函数

    我正在尝试在 javascript 上构建一些东西 我可以有一个可以是一切的输入 像字符串 xml javascript 和 不带引号的非 JavaScript 字符串 如下 strings eval hello I am a string
  • 如何使用 LINQ 从没有主键的表中插入/更新/删除记录

    我正在使用 LINQ 连接到第三者数据库 现在我必须将一些记录插入到没有设置主键的表中 并且出现以下异常 System InvalidOperationException 无法对 表 the table 执行创建 更新或删除操作 因为它没有
  • 如何在不使用 Next() 的情况下获取 sql.Rows 的计数?

    我需要得到的长度 sql Rows before我开始 Next 循环来获取值 一种方法是通过循环 Next 两次来创建行切片 获取计数 然后循环该新切片以提取值 但这似乎效率很低 所以我希望有一种更好的方法做这个 查看文档 我没有看到任何
  • mclapply 遇到取决于核心 id 的错误?

    我有一组基因 我需要并行计算一些系数 系数在里面计算GeneTo GeneCoeffs filtered它将基因名称作为输入并返回 2 个数据框的列表 长度为 100gene array我使用不同数量的核心运行此命令 5 6 和 7 Coe
  • 从字符串中获取“$#”的所有正则表达式匹配项

    我有一个字符串 其中包含多个美元符号实例 后跟一个正数 我需要使用正则表达式获取每个实例 这是一个字符串的示例 This that 1 who 2 到目前为止 我使用 vb net 得到的结果如下 Dim wordSplitMatches
  • npm ci 命令失败并显示“无法读取未定义的属性‘@angular/animations’”

    在为我的 Angular 项目执行 docker build 时 在npm ci步骤 我收到以下错误 Cannot read property angular animations of undefined 由于没有正确的错误 我们无法找到
  • 重复AlarmManager如何启动AsyncTask?

    我通常编写这段代码来启动服务AlarmManager intent new Intent getActivity someservice class pendingNotificationIntent PendingIntent getSe
  • 在位图上绘制长字符串会导致绘图问题

    我正在将一个长字符串绘制到位图 超过一百万个字符 包括多行字符 r n 由一个写StringBuilder 我的文本转位图代码如下 public static Bitmap GetBitmap string input Font input
  • 是否可以以编程方式抛出 NullPointerException? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当有后置条件 方法的返回值不能为null时 怎么办 我可以 assert returnValue null Not acceptable nul
  • 防病毒软件将 python.exe 检测为 idp.generic?

    我开始学习Python 安装了 python 2 7 和 Pycharm 当我在 Pycharm 中打开 python 控制台时 我的防病毒软件警告我路径中的 python exevenv Scripts被感染IDP Generic 以前有
  • SDL 2.0源码中有1.3吗?

    我正在研究 SDL 2 0 源代码 注意到其中有另一个声称是 1 3 版本的 SDL 文件夹 我对它很感兴趣 因为它有 android iphone 和其他一些的源代码 稳定版本 1 2 似乎有很大不同 我的问题是这样的 SDL 维基链接
  • 基于原型的 OO 与基于类的 OO 相比有哪些优点?

    为什么基于类的 OO 如此受欢迎 而不是基于原型的 OO 他们在学校教授后者吗 尽管 Javascript 是基于原型的 但大多数人主要是在功能上使用它 或者通过尝试模拟基于类的系统的框架 我知道Sun已经做了一些研究Self http r