gpt4 book ai didi

javascript - document.getElementsByTagName 的本地副本

转载 作者:行者123 更新时间:2023-11-30 07:19:02 24 4
gpt4 key购买 nike

为什么下面的代码不起作用?

var f = document.getElementsByTagName;
var x = f('div');

我在 Chrome 中收到“TypeError:非法调用”,在 Safari 中收到“TypeError:类型错误”。我在 Firefox 中没有收到错误,但它不起作用。我还没有费心在 IE 或 Opera 中进行测试。

最佳答案

在 Javascript 中没有所谓的“绑定(bind)方法”(借用 Python 的术语,我希望你已经知道,否则解释可能需要更长)。当您获取对“document.getElementsByTagName”的引用时,您只是获得了对函数 的引用,而不是与文档对象关联的方法。当你调用它时,“this”被设置为窗口,而不是文档,所以它不起作用。

从技术上讲,这样做会得到你想要的,但你可能会发现它毫无意义:

var x = f.call(document, 'div')

(这毫无意义,因为它的可读性较差,而且不如调用 document.getElementsByTagName() 快。使用闭包同样毫无意义。)

关于javascript - document.getElementsByTagName 的本地副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1857282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com