Dart在地图中使用'this',就像在Javascript中一样

Dart在地图中使用'this',就像在Javascript中一样,javascript,dart,Javascript,Dart,在javascript中,我们可以执行以下操作: var x = { 'name' : 'john', 'modifiedName' : function () { return this.name + ' <- modified'} }; var x={ “姓名”:“约翰”, 'modifiedName':函数(){returnthis.name+'不使用映射文本。但是您可以创建自己的映射类,在这里您可以通过多种方法实现这一点 作为方法 import "dart:collect

javascript
中,我们可以执行以下操作:

var x = {
  'name' : 'john',
  'modifiedName' : function () { return this.name + ' <- modified'}
};
var x={
“姓名”:“约翰”,

'modifiedName':函数(){returnthis.name+'不使用映射文本。但是您可以创建自己的映射类,在这里您可以通过多种方法实现这一点

作为方法

import "dart:collection";

class MyMap extends LinkedHashMap {

  String modifiedName() {
    String name = this["name"];
    return "$name <- modified";
  }

}

void main() {
  MyMap map = new MyMap();
  map["name"] = "John";
  print(map.modifiedName());
  map["name"] = "Harry";
  print(map.modifiedName());
}
导入“省道:集合”;
类MyMap扩展了LinkedHashMap{
字符串modifiedName(){
字符串名称=此[“名称”];

return“$name您可以这样做:

varx;
x={
“姓名”:“约翰”,

'modifiedName':()=>x['name']+'您不想为此创建Dart类的原因是什么?
import "dart:collection";

class MyMap extends LinkedHashMap {

  String _modifiedName() {
    String name = this["name"];
    return "$name <- modified";
  }

  String get modifiedName => _modifiedName();

}

void main() {

  MyMap map = new MyMap();
  map["name"] = "John";
  print(map.modifiedName);
  map["name"] = "Harry";
  print(map.modifiedName);

}
import "dart:collection";

class MyMap extends LinkedHashMap {

  String operator [](String key) {
    if(key == "modifiedName") {
      String n = this["name"];
      return "$n <- modified";
    }
    return super[key];
  }

}

void main() {

  MyMap map = new MyMap();
  map["name"] = "John";
  print(map["modifiedName"]);
  map["name"] = "Harry";
  print(map["modifiedName"]);

}