Dart 在比js.context.X更深的函数上使用数组表示法而不是NSM
能否使用Dart中的数组表示法访问Dart 在比js.context.X更深的函数上使用数组表示法而不是NSM,dart,dart-js-interop,Dart,Dart Js Interop,能否使用Dart中的数组表示法访问js.context之后的所有对象?例如,我想将以下内容转换为使用数组表示法: var-request=js.context.gapi.client.request(js.map(requestData)); 下面的数组表示法有效吗 var-request=js.context['gapi']['client']['request'](js.map(requestData)); 另外,如果试图访问JavaScript内置方法,是否应该执行以下操作 js.co
js.context
之后的所有对象?例如,我想将以下内容转换为使用数组表示法:
var-request=js.context.gapi.client.request(js.map(requestData));
下面的数组表示法有效吗
var-request=js.context['gapi']['client']['request'](js.map(requestData));
另外,如果试图访问JavaScript内置方法,是否应该执行以下操作
js.context['JSON']['stringify'](jsonResp);
这对我很有用:
var hug=newjs.Proxy(上下文['hug']);
var hugDatabase=newjs.Proxy(上下文['hugDatabase']);
hugDatabase['addHug'](hug);
打印(hugDatabase['hugs']['length']);
它与此JavaScript交互:
功能(强度){
力量=力量;
}
拥抱。原型。拥抱=功能(长度){
return“谢谢,这是一个很好的拥抱,”+length+“分钟!”;
}
Hug.prototype.patBack=函数(onDone){
onDone(“全部完成”);
}
函数数据库(){
this.hugs=[];
}
HugDatabase.prototype.addHug=函数(hug){
这个。拥抱。推(拥抱);
}
完整的示例如下:这对我来说很有用:
var hug=newjs.Proxy(上下文['hug']);
var hugDatabase=newjs.Proxy(上下文['hugDatabase']);
hugDatabase['addHug'](hug);
打印(hugDatabase['hugs']['length']);
它与此JavaScript交互:
功能(强度){
力量=力量;
}
拥抱。原型。拥抱=功能(长度){
return“谢谢,这是一个很好的拥抱,”+length+“分钟!”;
}
Hug.prototype.patBack=函数(onDone){
onDone(“全部完成”);
}
函数数据库(){
this.hugs=[];
}
HugDatabase.prototype.addHug=函数(hug){
这个。拥抱。推(拥抱);
}
完整的例子如下:TL;DR:首先对属性使用数组表示法,对方法使用
noSuchMethod
使用
js.context['gapi']['client']
会得到与js.context.gapi.client
相同的结果。数组表示法的主要优点是它避免了noSuchMethod
。直到最近,这还是解决问题的唯一方法。此问题已修复,缩小应与Dart JS互操作配合使用
几天前我做了一个小基准测试:
- 对于属性访问:数组表示法比
快10%左右。(noSuchMethod
vs.js.context.x
)js.context['x']
- 对于方法访问:数组表示法比noSuchMethod大约慢50%。(
vs.js.context.f()
)js.context['f']()
js.context['f']
),另一个用于调用此函数
最后,使用
noSuchMethod
可以增加您的dart2js结果大小(但在我测试的地方没有这么大)。TL;DR:首先对属性使用数组表示法,对方法使用noSuchMethod
使用
js.context['gapi']['client']
会得到与js.context.gapi.client
相同的结果。数组表示法的主要优点是它避免了noSuchMethod
。直到最近,这还是解决问题的唯一方法。此问题已修复,缩小应与Dart JS互操作配合使用
几天前我做了一个小基准测试:
- 对于属性访问:数组表示法比
快10%左右。(noSuchMethod
vs.js.context.x
)js.context['x']
- 对于方法访问:数组表示法比noSuchMethod大约慢50%。(
vs.js.context.f()
)js.context['f']()
js.context['f']
),另一个用于调用此函数
最后一个问题是,使用noSuchMethod
可以增加您的dart2js结果大小(但在我测试的地方没有这么大)