简体   繁体   English

Javascript 用括号访问方法?

[英]Javascript accessing methods with brackets?

I saw this in some code:我在一些代码中看到了这一点:

var _0xdf50x7 = document['createElement']('form');

How does this work?这是如何运作的? Does this mean that an object's methods can be accessed like the elements of an array?这是否意味着可以像访问数组元素一样访问对象的方法?

Since the createElement() method is a member of the document object, it can be accessed using either dot notation :由于createElement()方法是document object 的成员,因此可以使用点符号访问它:

var form = document.createElement("form");

Or bracket notation :括号表示法

var form = document["createElement"]("form");

This can be useful if the name of the method to call is stored in a variable:如果要调用的方法的名称存储在变量中,这将很有用:

var methodName = "createElement";
var form = document[methodName]("form");

It can also be used if the actual method to call depends on external conditions.如果实际调用的方法取决于外部条件,也可以使用它。 Here is a (contrived) example:这是一个(人为的)示例:

function createNode(str, isTextNode)
{
    return document[isTextNode ? "createTextNode" : "createElement"](str);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM