gpt4 book ai didi

dart - Dart2JS 如何将 Dart 函数转换为 JS 函数?

转载 作者:行者123 更新时间:2023-12-03 03:12:51 33 4
gpt4 key购买 nike

将 Dart 函数传递给 Javascript 代码时,当前的约定是使用 allowInterop()来自 package:js (想必)。这工作得很好,但它创建了一个闭包,这是需要构造函数的 Javascript 代码所不允许的。

我已经进行了一些挖掘,但到达了死胡同here :

external DART_CLOSURE_TO_JS(Function function);

这要去哪里?它是开源的吗?

是否可以将 Dart 函数转换为 package:js 或 dart:js 中的非封闭 JS 函数?如果不是,为什么?

最佳答案

Dart 函数不能用作 JS 构造函数,因为它没有设置正确的原型(prototype)。同样对于自定义元素还有另一个困难:它必须正确地委托(delegate)给 DOM 元素构造函数。

正常的方法是使用 ES6 类。我做了一个使用JS定义自定义元素类的例子。我想您可能已经看到了,但为了以防万一,请在此处链接:Dart custom element interop demo .文件web/interop.js定义自定义元素类。

我认为 ES5 构造函数也可以工作,如果它使用 Reflect.construct() .上周我花了一些时间看看这是否有助于改造 dart:html 以使用自定义元素,但我认为这还不够。 Dart 需要一些更好的 JS 互操作能力。

同时,我的建议是在 JS 中定义自定义元素类并使用互操作与 Dart 对话(反之亦然)。

关于dart - Dart2JS 如何将 Dart 函数转换为 JS 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53028672/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com