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
将javascript移植到dart_Dart - Fatal编程技术网

将javascript移植到dart

将javascript移植到dart,dart,Dart,我想将此javascript代码移植到dart 函数Beagle(){ this.argv_=null; this.io=null; }; Beagle.prototype.run=函数(){ this.io=this.argv_u2;.io.push(); }; runCommandClass(Beagle); 问题是 如何创建对象Beagle 如何创建原型对象Beagle.prototype.run类Beagle{// 地图argv_3;; 国际信息o; 地图信息; //将其作为构造函数是

我想将此javascript代码移植到dart

函数Beagle(){
this.argv_=null;
this.io=null;
};
Beagle.prototype.run=函数(){
this.io=this.argv_u2;.io.push();
};
runCommandClass(Beagle);
问题是 如何创建对象
Beagle

如何创建原型对象
Beagle.prototype.run

类Beagle{//
地图argv_3;;
国际信息o;
地图信息;
//将其作为构造函数是有意义的,这取决于终端类如何使用它(看起来不是)
void run(this.argv_){
this.portInfo=JSON.parse(this.argv_['argString']);//未测试
io=argv_['io'].长度;
}
void sendString_(String s){//不知道argv_,sendString_…末尾的下划线是用来做什么的
// ...
}
void onRead(字符串s){}
void onTerminalResize(int-width,int-height{}
无效退出(代码){
// ...
}
无效关闭(){
// ...
}
}
var b=新的比格犬();//不是从JS源代码翻译过来的-只是添加来展示如何从Beagle类创建新对象
b、 运行(argvFromSomewhere);
这包括一些关于JavaScript代码意图的猜测

我更喜欢在从JavaScript移植时使用特定类型。这对我发现bug和理解意图有很大帮助。当我猜错了类型时,我在运行时得到了一个异常,然后我可以解释为什么我得到了一个意外的类型,以及我的哪些假设是错误的。

这种Js代码(函数定义和
prototype
changes)可以移植到Dart类中。您可以遵循以下主要规则:

  • function Xxxx(){/*js code to init*/}
    (伪js类)转换为:
Xxxx类{
///建造师
Xxxx(){
/*Dart代码到初始化*/
}
}
  • 当您具有类似于函数Xxxx(param1,param2){/*js code to init*/}中的构造函数参数时,您必须使用这些参数创建其他构造函数:
Xxxx类{
///带参数的构造函数
Xxxx(参数1,参数2){
/*带参数1、参数2的初始Dart代码*/
}
}
  • Xxxx.prototype.method1=函数(p1、p2、p3){/*js方法的代码*/}
    类似于必须转换为以下内容的方法:
Xxxx类{
//……其他代码
///方法
方法1(p1、p2、p3){
/*省道码*/
}
}
为了使代码更加清晰,还可以在方法和构造函数上添加类型注释。这是政府的建议

类型注释是关于如何使用库的重要文档。注释公共方法和函数的参数和返回类型有助于用户理解API的期望和提供的内容

例如:

Xxxx类{
///建造师
Xxxx(字符串参数1,int参数2){
/*带参数1、参数2的初始Dart代码*/
}
///方法
void method1(num p1,String p2,DateTime p3){
/*省道码*/
}
}

似乎和为什么要问两次相同的问题?前面的问题是如何从dart调用javascript函数。这是dart的端口javascript代码。。因为我的英语不好,所以我用错误的描述提问..我正在移植此代码。。这并不容易:/如果我使用纯dart类,我就不能将该类传递给
runCommandClass(Beagle)。因为
Beagle
是飞镖级。不是javascript函数我可以用这个答案解决我的问题。一如既往地感谢冈特!