我可以在dart的main函数之外使用queryselector吗?

时间:2015-02-08 22:28:52

标签: dart

在很多例子中,我看到这样的代码:

InputElement task;

void main() {
  task = querySelector('#task');
  task.text = "blabla";
}

这样做似乎也有同样的效果。

InputElement task = querySelector('#task');

void main() {
  task.text = "blabla";
}

我更喜欢第二种方式,但我不确定是否存在任何差异,或者第二种方式可能会破坏某些方式。

2 个答案:

答案 0 :(得分:4)

是的,您可以在顶层调用querySelector。

但请注意评估顺序,因为必须首先初始化DOM。通常,dart脚本标记位于正文的末尾,因此主要在创建DOM之后运行。

对于顶级变量,在第一次使用变量时,将评估右侧的表达式。

考虑以下示例,它打印1,2,3。

int i = foo();

foo() {
  print('#2');
  return 42;
}

main() {
 print('#1');
 int k = i;  // i is accessed for the first time, so foo() is called.
 print('#3');
}

答案 1 :(得分:2)

由于在DOM准备好之前不会执行Dart代码,因此两种方法都可以正常工作,并且两种方法都不会中断。