分配最终字段时,Dart undefined不是函数

时间:2015-03-23 19:37:20

标签: dart

当我尝试在构造函数中分配最终字段时,我在chrom中出现Uncaught TypeError: undefined is not a function错误。当我删除它有效的final字时(我正在使用dart2js将dart转换为Chrome)。有人可以解释一下为什么我不能指定最后一个字段吗?

这有效:

import 'dart:html';

class FileToUploadSet {
    InputElement _fooElement;

    FileToUploadSet(Element motherElement) {
        this._input = motherElement.querySelector('#foo');
    }
}

这不是:

import 'dart:html';

class FileToUploadSet {
    final InputElement _fooElement;

    FileToUploadSet(Element motherElement) {
        this._input = motherElement.querySelector('#foo');
    }
}

1 个答案:

答案 0 :(得分:3)

您只能分配到声明字段的最终字段或构造函数初始化列表

import 'dart:html';

class FileToUploadSet {
    final InputElement _fooElement; <== here you can assign to a final field
    final String someField

    FileToUploadSet(Element motherElement, /* here with this._fooElement */) 
    /* and here like */ : this._fooElement = 'someValue' {
        // but not in the constructor body.
        this._input = motherElement.querySelector('#foo');
    }
}