gpt4 book ai didi

javascript - 为什么使用 typeof 来标识函数?

转载 作者:数据小太阳 更新时间:2023-10-29 04:02:46 24 4
gpt4 key购买 nike

是否有任何重要的使用原因

typeof variable === 'function'

对比

!!variable.call

用于检测变量是否为函数?

除了显而易见的,有人可能会创建这样的对象:

{ call: 1 }

我的问题是

typeof /regex/ === 'function'

返回真,但是

!!/regex/.call

返回错误

最佳答案

最安全的方法是检查内部 [[Class]] 属性,方法是在调用 Object.prototype.toString.

Object.prototype.toString.call( myVariable ) === '[object Function]';

当然你可以很容易地用它做一个函数:

function checkClass( obj ) {
return Object.prototype.toString.call( obj ).slice( 8, -1).toLowerCase();
}

checkClass( myVariable ) === 'function';

这很简单,可能还有一些改进,但你明白了。

关于javascript - 为什么使用 typeof 来标识函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5054352/

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