我在一些代碼看到這個:使用括號訪問方法的Javascript?
var _0xdf50x7 = document['createElement']('form');
這是如何工作的?這是否意味着可以像數組元素一樣訪問對象的方法?
我在一些代碼看到這個:使用括號訪問方法的Javascript?
var _0xdf50x7 = document['createElement']('form');
這是如何工作的?這是否意味着可以像數組元素一樣訪問對象的方法?
由於createElement()
方法是document
對象的member,它可以使用來訪問任一dot notation:
var form = document.createElement("form");
var form = document["createElement"]("form");
這可以是有用的,如果的名稱調用方法存儲在一個變量中:
var methodName = "createElement";
var form = document[methodName]("form");
如果調用的實際方法取決於外部條件,也可以使用它。這裏是一個(人爲的)例子:
function createNode(str, isTextNode)
{
return document[isTextNode ? "createTextNode" : "createElement"](str);
}
爲什麼要用括號? – mowwwalker
@user,如果您必須計算要調用的方法並且希望備用「if」語句(或者如果方法名稱存儲在變量中,正如其他人正確指出的那樣),則它們有時很有用。 –
如果要在括號中使用字符串文字(如給出的示例中),括號語法沒有多大幫助,但是如果函數名稱位於變量中,或者您想要應用某些條件來選擇哪個函數,例如'document [someFunction]();'或'document [someCondition? 「someFunction」:「someOtherFunction」]();' – nnnnnn
這種形式通常用於方法名稱在變量中時:'var m = some_condition? 'm1':'m2'; o [m]();' –