Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart中的JS Object.create()_Dart_Dart Js Interop - Fatal编程技术网

Dart中的JS Object.create()

Dart中的JS Object.create(),dart,dart-js-interop,Dart,Dart Js Interop,我正在Dart中构造两个JS对象。在JS中,它们是用Object.create()构造的: var WaveSurfer 1=Object.create(WaveSurfer); var WaveSurfer 2=对象.create(WaveSurfer); 这就是我认为的Dart等价物: var wavesurfer1=context['WaveSurfer']; var wavesurfer1=上下文['WaveSurfer']; 但是,我发现Dart中的两个对象似乎是相同的。当我在一个

我正在Dart中构造两个JS对象。在JS中,它们是用Object.create()构造的:

var WaveSurfer 1=Object.create(WaveSurfer);
var WaveSurfer 2=对象.create(WaveSurfer);
这就是我认为的Dart等价物:

var wavesurfer1=context['WaveSurfer'];
var wavesurfer1=上下文['WaveSurfer'];

但是,我发现Dart中的两个对象似乎是相同的。当我在一个对象中调用函数时,它在两个对象中都会被触发。这在JS代码中不会发生。我怀疑Object.create()不应该在Dart中作为上下文[“”]编写。如果这是真的,我无法在dartlang.org或stackoverflow.com中找到如何正确地将此表达式转换为Dart的示例。您可以查看WaveSurfer的JS源代码。

使用
上下文['WaveSurfer']
您将获得一个与JS WaveSurfer相对应的JsObject,而不是一个新对象

要执行与粘贴的JS代码相当的Dart,请执行以下操作:

导入'dart:js';
var wavesurfer=context['wavesurfer'];
var wavesurfer1=context['Object'].callMethod('create',[waveSurfer]);
var waveSurfer 2=context['Object'].callMethod('create',[waveSurfer]);

如果您发现dart:js的用法很难理解,那么您可以使用package:js,它提供了一个更简单的API(但js生成的大小更大):

import'package:js/js.dart';
var wavesurfer1=context.Object.create(context.WaveSurfer);
var WaveSurfer 2=context.Object.create(context.WaveSurfer);

使用
上下文['WaveSurfer']
可以得到一个与Js WaveSurfer相对应的JsObject,而不是一个新对象

要执行与粘贴的JS代码相当的Dart,请执行以下操作:

导入'dart:js';
var wavesurfer=context['wavesurfer'];
var wavesurfer1=context['Object'].callMethod('create',[waveSurfer]);
var waveSurfer 2=context['Object'].callMethod('create',[waveSurfer]);

如果您发现dart:js的用法很难理解,那么您可以使用package:js,它提供了一个更简单的API(但js生成的大小更大):

import'package:js/js.dart';
var wavesurfer1=context.Object.create(context.WaveSurfer);
var WaveSurfer 2=context.Object.create(context.WaveSurfer);

Alexandre。我以前尝试过这个,但我得到了这样的期望:
异常:TypeError:对象原型可能只是一个对象或null
。抱歉。我误读了你的密码。谢谢你抽出时间回答我的问题。我发现编译后的JS代码表现不同。它似乎从两个构造函数中创建了一个对象。这是dart2js中的错误吗?Alexandre。我以前尝试过这个,但我得到了这样的期望:
异常:TypeError:对象原型可能只是一个对象或null
。抱歉。我误读了你的密码。谢谢你抽出时间回答我的问题。我发现编译后的JS代码表现不同。它似乎从两个构造函数中创建了一个对象。这是dart2js中的错误吗?