2015-02-09 96 views
1

我正在與Kotlin的第三方圖書館合作,我必須要做的事情之一是致電delete thing[key],以便從物品中刪除物品。我無法弄清楚如何從Kotlin代碼中做到這一點。如何從Kotlin調用JavaScript刪除?

我試過js("delete thing[key]"),但是thing是一個函數的參數,並且被Kotlin> JavaScript編譯器改名,所以執行該行時會引發異常。我也試過js("delete ") thing[key],但毫不奇怪,這也沒有工作。

回答

4

對於delete操作你可以寫:

external fun delete(p: dynamic): Boolean = noImpl 
//... 
delete(thing[key]) 

對於我已經加了一些助手更方便使用:

fun delete(thing: dynamic, key: String) { 
    delete(thing[key]) 
} 

// or 
fun String.deleteFrom(d: dynamic) { 
    delete(d[this]) 
} 

fun test(a: Any, k: String) { 
    delete(a, k) 
    k.deleteFrom(a) 
    k deleteFrom a 
} 

注意:在使用delete運算符是不是一個很好的做法,它會導致JS虛擬機中的最優化