检查 Javascript 中不同类型函数的相等性
Checking the equality of different kind of functions in Javascript
function a(){ return true; }
var b = function(){ return true; };
window.c = function(){ return true; };
console.log(typeof a);//returns funtion
console.log(typeof b); //returns funtion
console.log(typeof window.c); //returns funtion
typeof a === typeof b === typeof window.c //returns false
在控制台中运行上述代码时,final 语句给出 false。 而所有 3 个函数的类型返回函数。我知道javascript中有一些奇怪的部分,类型为..你们能解释一下吗..
问题与类型不相等无关,而与以下事实有关:
a === b === c
被解释为:
(a === b) === c
因此,这意味着第一个测试typeof a === typeof b
解析为true
,现在您执行像true === typeof window.c
一样的相等性检查。
您可以通过将条件重写为:
(typeof a === typeof b) && (typeof b === typeof window.c)
相关文章:
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 如何在DOM元素上按类型构建此函数
- 如何将具有文本类型值的var放入jQuery函数中
- 为什么不'我们在javascript中使用函数参数的数据类型
- 未捕获的类型错误:$(..).dataTable不是函数
- 这两种调用 JavaScript 匿名函数的类型有什么区别
- Babel:ES6 中的函数参数类型
- JavaScript函数的类型是在声明函数之前定义的
- 重新打开程序函数返回类型错误“无法读取 null 的属性'样式'”
- 使用Nashorn将Javascript函数作为函数接口类型传递给Java方法
- FlexSlider不工作-“;未捕获的类型错误:未定义的不是函数“;(类型3)
- 这些函数的类型是什么?
- 是否有可能给JavaScript函数一个类型/类?
- 聚合物如何得到同类型的孩子
- 嵌套具有属性回退的同类型javascript对象
- 如何为返回新类对象的函数指定类型
- 使用函数或类型
- 原型函数同一类的不同id元素
- Javascript toString覆盖函数返回类型
- javascript函数的类型