js-interop: передача объекта javascript из dart

Я изо всех сил пытаюсь перенести javascript на дротик ..

Моя проблема в том, как создать объект javascript. исходный код javascript

  function Beagle() {
    this.argv_ = null;
    this.io = null;
  };
  Beagle.prototype.run = function() {
    this.io = this.argv_.io.push();
  };

Теперь у меня есть Beagle объект. и это должно быть context['Beagle'], может быть?

как я могу создать объект javascript ?? а с prototype?


person Sungguk Lim    schedule 21.03.2014    source источник


Ответы (1)


Вы правы, что Beagle должен быть доступен на context['Beagle']. Чтобы создать новый экземпляр из Dart, вам нужно использовать конструктор JsObject:

var beagle = new JsObject(context['Beagle']);

Как только вы это сделаете, вы можете вызвать run с помощью метода callMethod:

beagle.callMethod('run');
person Justin Fagnani    schedule 21.03.2014
comment
хорошо, тогда как я могу создать Beagle.prototype.run? это же правило? context['Beagle']['prototype']['run'] = new JsObject(...)? или prototype имеет другое правило? - person Sungguk Lim; 22.03.2014
comment
Я не понимаю вашего вопроса. Учитывая вышеупомянутый JavaScript, я показал вам Dart - это то, как вы получаете к нему доступ. Вы хотите определить свой прототип JavaScript из Dart? Это выполнимо, но, если нет веской причины, я бы сохранил ваш JavaScript в JavaScript. - person Justin Fagnani; 22.03.2014