当我们尝试使用直接引用调用文档对象方法时,例如:var kk = document.getElementById;kk(
when we try to call document object methods with direct refrence ex: var kk = document.getElementById; kk("someid") gives error?
var kk = document.getElementById;
kk("some_id"); // gives Uncaught TypeError: Illegal invocation in chrome
但是,如果我们对用户定义的对象执行相同的操作,则可以正常工作。
var obj = {
some_function : function(a){
alert(a);
}
};
var kk = obj.some_function;
kk("hello"); // works
此错误的原因是什么。 我刚刚在谷歌浏览器中检查了一下,它不起作用,当我通过 var $id = document.getElementById;
为 document.getElementById
创建一个简短版本时遇到了这个问题,但它不起作用。 有趣的是,这里$id === document.getElementById;
(真)和typeof $id
是函数。
是因为某些安全原因还是什么?对不起,英语很弱,我什至不擅长为问题做好的标题。感谢您的回答。
使用 Function.prototype.bind()。它将上下文绑定到文档。
var kk = document.getElementById.bind(document);
相关文章:
- 控制台返回var不是't定义,但它是
- 从var向代码隐藏函数传递值
- 如何通过引用var Using DataTables来进行分页或排序
- jQuery语法添加了var
- 如何将具有文本类型值的var放入jQuery函数中
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 当var==0时,我如何显示一个警报
- javascript中对象构造函数中的var属性与this.properties
- 函数中this和var之间的区别
- JavaScript-的含义:var DndUpload=函数(inputElem){};
- Understanding Javascript scope with "var that = this&qu
- 如何使用javascript var引用Mongo DB集合's字段
- var w = q||问2;这个表达式是什么意思
- 为什么JavaScript抛出'未捕获的ReferenceError:var未定义'定义var时
- 在jquery函数内部设置来自jquery函数的var;t运行
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 如何使用var名称调用JSON数据
- '这'在使用之前分配给了一个var
- 更改json/javascript对象var名称或从数字var中检索值
- 当我们尝试使用直接引用调用文档对象方法时,例如:var kk = document.getElementById;kk(