当前位置: 首页 > news >正文

$.type 怎么精确判断对象类型的 --(源码学习2)

目标: 

var a = [1,2,3];
    console.log(typeof a); //->object
    console.log($.type(a)); //->array
 
jQuery -v1.12.4
 1 jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
 2 function( i, name ) {
 3     class2type[ "[object " + name + "]" ] = name.toLowerCase();
 4 } );
 5 
 6 
 7 
 8 ....
 9 
10 
11 type: function( obj ) {
12         if ( obj == null ) {
13             return obj + "";
14         }
15         return typeof obj === "object" || typeof obj === "function" ?
16             class2type[ toString.call( obj ) ] || "object" :
17             typeof obj;
18     },

 

分析:

第1-4行:通过遍历给class2type对象添加属性

    

第16行:通过toString.call(obj)来得到obj的属性。

 

转载于:https://www.cnblogs.com/zqzjs/p/5557204.html

相关文章:

  • Network of Schools_POJ1236_Tarjan
  • 18121 排排坐看电影
  • 编辑中
  • html5 历史管理
  • fopen()函数以a+方式打开一个不存在的文件后读写出现问题
  • 第五章
  • Android Studio自定义注释模板
  • 觉得很有用存一份
  • Grails用CONSOLE测试,比写集成测试还快
  • 186.Reverse Words in a String II
  • 用C#代码来安装、卸载、启动、关闭服务
  • 《java入门第一季》之TreeSet存储自定义对象并保证排序和唯一
  • 创建模仿存储库 Making a Mock Repository 精通ASP-NET-MVC-5-弗瑞曼 Listing 7-5
  • 《训练指南》——6.7
  • BadgeValueView
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • jdbc就是这么简单
  • JS+CSS实现数字滚动
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • SAP云平台里Global Account和Sub Account的关系
  • Spring Boot快速入门(一):Hello Spring Boot
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 基于HAProxy的高性能缓存服务器nuster
  • 容器服务kubernetes弹性伸缩高级用法
  • 使用 @font-face
  • 小程序开发中的那些坑
  • 学习Vue.js的五个小例子
  • 译有关态射的一切
  • ionic入门之数据绑定显示-1
  • 仓管云——企业云erp功能有哪些?
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (13)Hive调优——动态分区导致的小文件问题
  • (5)STL算法之复制
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (二十四)Flask之flask-session组件
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • **CI中自动类加载的用法总结
  • .dwp和.webpart的区别
  • .NET HttpWebRequest、WebClient、HttpClient
  • .Net Remoting常用部署结构
  • .NET 设计一套高性能的弱事件机制
  • .net 生成二级域名
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET文档生成工具ADB使用图文教程