我想使用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