代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
/**
* Use function string name to check built-in types,
* because a simple equality check will fail when running
* across different vms / iframes.
* 检查函数是否是函数声明 如果是函数表达式或者匿名函数是匹配不上的
*
*
*/
function getType(fn) {
var match = fn && fn.toString().match(/^\s*function (\w+)/);
return match ? match[1] : ''
}
//判断两个函数声明是否是相等
function isSameType(a, b) {
return getType(a) === getType(b)
}
//判断expectedTypes 中的函数和 type 函数是否有相等的如有有则返回索引index 如果没有则返回-1
function getTypeIndex(type, expectedTypes) {
//如果不是数组直接比较 如果真则返回0
if (!Array.isArray(expectedTypes)) {
return isSameType(expectedTypes, type) ? 0 : -1
}
for (var i = 0, len = expectedTypes.length; i < len; i++) {
//如果是数组则寻找索引
if (isSameType(expectedTypes[i], type)) {
return i
}
}
return -1
}
//Boolean 传一个布尔值 但是 一般是函数或者数组函数才有意义,而且是函数声明的函数并不是 函数表达式prop.type 也需要是函数
//返回的是相同的索引 判断 属性类型定义的是否是Boolean
var booleanIndex = getTypeIndex(Boolean, Boolean);
var stringIndex = getTypeIndex(String, 'a');
console.log(booleanIndex)
console.log(stringIndex)
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。