Set*_*add 6 dart dart-js-interop
我需要this
从Dart函数访问JavaScript对象.我正在通过Dart-JS interop向JavaScript对象添加一个新方法.我需要从Dart中定义的方法访问JavaScript对象上的属性.
该Callback
构造函数可以通过this
从JavaScript.根据回调的API文档:
new Callback.many(Function f, {bool withThis: false})
new Callback.once(Function f, {bool withThis: false})
Run Code Online (Sandbox Code Playgroud)
这是一个例子:
飞镖码:
import 'dart:html';
import 'package:js/js.dart' as js;
void main() {
var greeter = js.context['greeter'];
var msg = greeter['greet']('Bob');
greeter['doCoolStuff'] = new js.Callback.many(doCoolStuff, withThis: true);
}
doCoolStuff(jsThis) {
print(jsThis['msg']);
}
Run Code Online (Sandbox Code Playgroud)
注意withThis: true
创建回调时的用法.在this
从JavaScript传递作为第一个参数传递给回调函数.在这种情况下,我给它一个名字jsThis
.
JavaScript代码:
function Greeter() {
this.msg = 'hello';
var that = this;
document.getElementById('clickme').addEventListener('click', function() {
that.doCoolStuff();
});
}
Greeter.prototype.greet = function(name) {
return this.msg + ' ' + name;
}
var greeter = new Greeter();
document.getElementById('clickme').addEventListener('click', function() {
greeter.doCoolStuff(); // comes from Dart land
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
330 次 |
最近记录: |