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"]);
}