dart - Dart 编程语言是否有相当于 Javascript 的 "prototype"?

标签 dart

在 Dart 中,函数是否可以有与之关联的原型(prototype)?

Javascript 代码示例:

doStuff.prototype.isDefined = true; //is there anything like Javascript's function prototypes in Dart?
function doStuff(){
    console.log("The function doStuff was called!");
}

是否可以在 Dart 中执行与此等效的操作(即为每个函数创建属性列表?)

最佳答案

这里需要解决两件事:

首先,Dart 没有原型(prototype)或原型(prototype)继承,而是使用经典继承。对象拥有类,而不是原型(prototype);对象拥有父类(super class),而不是原型(prototype)链。

其次,对于您的具体情况,我认为我们必须了解您需要做的更多事情才能找出在 Dart 中执行此操作的惯用方法。很快就可以用对象模拟函数,以便您可以调用对象并仍然拥有与其关联的状态和其他方法。

请参阅这篇文章了解更多信息:http://www.dartlang.org/articles/emulating-functions/

当该功能落地时,您将能够执行以下操作:

class DoStuff {
  bool isDefined = true;
  call() => print("The function doStuff was called!");
}
var doStuff = new DoStuff();

main() => doStuff();

如果您有一组需要跟踪的关于您的函数的固定元数据,那么这很有效。它与 JavaScript 略有不同,因为 Dart 中函数的每个实例都有自己的 isDefined 状态。我不确定是否可以或容易在 JavasScript 中获取该函数的多个实例,但您可能需要将 isDefined 设为静态,以便在所有实例之间共享该值。

关于dart - Dart 编程语言是否有相当于 Javascript 的 "prototype"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12667001/

相关文章:

dart - 什么代码放在事件循环上 - future 主体或完成后执行的调用(然后)?

dart - Flutter 检查变量是否为 NaN

dart - Flutter ScrollController 在具有 ConnectionState 条件的 StreamBuilder 下无法工作

json - Dart问题与获取JSON数据

flutter - 将类转换/转换为父类类型

flutter - 在BoxDecoration图像上强制裁剪

dart - Flutter 在执行后台任务时显示 Progress HUD

Flutter 网络图像作为谷歌地图标记

dart - 使用 flutter 的集合中的值(value)总和

测试:未找到 MaterialLocalizations。 AppBar 小部件需要提供 MaterialLocalizations