gpt4 book ai didi

javascript - javascript中的别名函数

转载 作者:行者123 更新时间:2023-12-03 13:24:02 29 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
If Javascript has first-class functions, why doesn’t this work?



当我尝试为 document.getElementById 创建别名函数时如下:
f = document.getElementById;

但是,当我尝试打电话时:
var e_fullname = f(“fullname”);

出现错误: Could not convert JavaScript argument
以下是可以的:
var e_fullname = f.call(document, “funname”);

你能告诉我为什么吗?

最佳答案

调用函数有四种方式:

  • 函数调用:f(p1, p2)
  • 方法调用:obj.f(p1, p2)
  • 应用或调用调用:f.apply(obj, [p1, p2]) , f.call(obj, p1, p2)
  • 构造函数调用:new f(p1, p2)

  • 在所有这些情况下, f只是对函数对象(具有 [[Call]] 内部属性的对象)的引用(指针)。在所有这些情况下,它的行为不同的是函数的调用方式,这很重要。

    所以, f只是对 getElementById 的引用对象, document.getElementById 之间没有区别和 someOtherHTMLElement.getElementById ;该函数不会保留对引用它的对象的引用。

    如果要绑定(bind)某个“所有者”对象,请使用 bind方法:
    var f = document.getElementById.bind(document);

    关于javascript - javascript中的别名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13000020/

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