我想使用JSNI(GWT的javacript接口)来设置/获取变量/从JS对象:窗口,像这样:相当于如何使用JavaScript将变量正确存储到窗口?
private final native <T> T get(String key)/*-{
return $wnd.key;
}-*/;
private final native void set(String key, Object value)/*-{
$wnd.key = value;
}-*/;
///// JS们会喜欢这个
function get(String key){
return window.key;
}
function set(String key, var value){
window.key = value;
}
如果我设置一个变量:VAR_1到窗口:
var var_1={"id":"id_1","name":"name_1"}
set("key_1",var_1)
然后
get("key_1")
我会得到VAR_1正确
,然后设置另一个变量VAR_2到窗口
var var_2={"id":"id_2","name":"name_2"}
set("key_2",var_2)
然后,尝试获得key_1再次
get("key_1")
意外,VAR_2将返回
所以,问题很明显:get()函数将始终返回最后一个设置可变不管键is.Questions是什么:
1,Why?
2,How to make it right?
好像你证明在JS中,点符号细化总是字面的,而通过“[]”运算符的细化会导致可变的分辨率。我不知道这种语言的细节 - 谢谢。 – 2014-11-02 18:20:40