2 Star 1 Fork 1

jiangmu/vue解析

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
getTypeIndex.html 1.79 KB
一键复制 编辑 原始数据 按行查看 历史
qq281113270 提交于 2019-03-28 14:24 . Add files via upload
<!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>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/sixlty/vue-parsing.git
[email protected]:sixlty/vue-parsing.git
sixlty
vue-parsing
vue解析
master

搜索帮助