gpt4 book ai didi

javascript - 检查带有原型(prototype)的 native 定义函数

转载 作者:行者123 更新时间:2023-11-28 21:02:58 24 4
gpt4 key购买 nike

答案来自此question说用它来检查函数是否已定义:

typeof yourFunction === 'function'

但是我在非标准函数上尝试过这个 link() 。实际上这返回了 false。该功能在我尝试过的所有浏览器上都可用 - IE、Chrome、Opera、FireFox。

typeof String.link === 'function' // false
typeof String.link() === 'function' // Uncaught error ...

然后我在某个地方发现:

typeof String.prototype.link === 'function' //true

实际上返回 true。有什么区别以及为什么第一个失败?

最佳答案

String是构造函数,函数也是对象。您可以向其附加属性。

For example:

function foo(){
alert('from foo');
}

foo.bar = function(){
alert('bar on foo');
}

foo(); //from foo
foo.bar(); //bar on foo

这与 jQuery 的 $ 表现得像一个对象(例如 $.each())和函数(例如 $ (选择器))。

所以:

  • 使用String.link正在访问构造函数本身的属性 - 该属性不存在。

  • 使用 String.prototype.link 访问每个字符串附带的 link() 函数 - 该函数确实存在(并且您应该使用它)

关于javascript - 检查带有原型(prototype)的 native 定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10526365/

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