首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否从JS类继承Dart类?

是否从JS类继承Dart类?
EN

Stack Overflow用户
提问于 2012-12-22 14:11:30
回答 1查看 349关注 0票数 2

我有一个使用CreateJS js库制作的HTML5游戏。我想使用Dart重写它,但我的大多数对象都继承自CreateJS对象(例如容器)。我能保存这样的遗产吗?有没有一种很好的方式将Dart与其他旨在简化画布上绘图的js库一起使用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-23 06:11:36

Dart类不能直接扩展Javascript类。但是,您可以通过设置将执行Dart代码的方法来自定义Javascript对象。

例如,假设您有一个扩展Container类的Child Javascript类:

代码语言:javascript
复制
function Container(){}
Container.prototype.callSayHello = function(){ this.sayHello(); }
Container.prototype.sayHello = function(){ alert("hello from JS"); }

function Child(){}
Child.prototype = new Container();

在Dart端,您可以创建一个Child并在其上定义一个sayHello方法,覆盖Container中的sayHello

代码语言:javascript
复制
import 'dart:html';
import 'package:js/js.dart' as js;

main(){
  // with sayHello overriding
  js.scoped((){
    final child = new js.Proxy(js.context.Child);
    child.sayHello = new js.Callback.many(() {
      window.alert("hello from Dart");
    });
    child.callSayHello(); // displays "hello from Dart"
  });

  // without sayHello overriding
  js.scoped((){
    final child = new js.Proxy(js.context.Child);
    child.callSayHello(); // displays "hello from JS"
  });
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14000546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档