我今天正在帮助对一个 javascript 片段进行去混淆处理,我很惊讶地发现了这个:
document["write"]('obfuscated code here');
“写”这个词也被混淆了,这使得理解代码的意图变得稍微困难一些。
我以前从未见过将文档视为数组的情况,我很好奇它是如何/为什么起作用的。是否有其他函数可以以类似的方式调用?
最佳答案
document
是一个 Javascript 对象(不是数组)。可以通过点 (parent.child
) 或下标 (parent['child']
) 语法访问对象字段。
你可以自己试试:
var myObject = {
field: 'hello!'
}
console.log(myObject['field']);
console.log(myObject.field);
当您的字段名称不是有效的 Javascript 标识符时,下标语法很有用:
var myObject = {
'my-field': 'hello!'
}
console.log(myObject['my-field']); // Works as expected
console.log(myObject.my-field); // ReferenceError
console.log(myObject.'my-field'); // SyntaxError
关于javascript - 有人可以解释为什么 document ["write"] 有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22543774/