firebug的一个有趣现象介绍


Posted in Javascript onNovember 30, 2011
var obj = {length:0,splice:function(){}} 
console.log(obj)

猜猜上面会打印出啥?
没错,打印出来的看起来是一个空数组。。。
在FIREBUG里如果一个对象同时拥有length属性和splice方法,就会被firebug显示为数组的形式。。。
如果以前注意过的话就会发现JQUERY就是这么写的,通过选择器打印出来的看起来跟数组一样。
一直以来我都很好奇为毛返回的数组,但是却有数组根本没有的方法,也没有数组该有的方法,比如:pop等
最后通过查资料才发现这么一个有趣的现象。。
但是在IE下面打印出来的就是正常的[Object Object]了。
于是就可以这么玩一下。。。。
var push = Array.prototype.push; 
var splice = Array.prototype.splice; 
var a = function() { 
var a = function(name) { 
return new a.fn.init(name) 
} 
a.fn = a.prototype; 
a.fn.init = function(name) { 

var arr = document.getElementsByTagName(name); 


merge(this,arr); 

} 
a.fn.splice = splice; 
a.fn.init.prototype = a.fn; 
return a; 
}() 
function merge(first, second) {//完全抄袭jquery中的merge方法- - 
var i = first.length || 0, j = 0; 
if( typeof second.length === "number") { 
for(var l = second.length; j < l; j++) { 
first[i++] = second[j]; 
} 
} else { 
while(second[j] !== undefined) { 
first[i++] = second[j++]; 
} 
} 
first.length = i; 
return first; 
} 
a.fn.css = function(pop, val) { 
for(var i = 0; i < this.length; i++) { 
if(this[i].nodeType===1){ 
this[i].style[pop] = val; 
} 
} 
return this; 
} 
var ab = a('div'); 
ab.css('backgroundColor', '#444444').css('borderWidth', '2px').css('borderStyle', 'solid')

于是,山寨版jquery并且只支持tagName选择器并且只有山寨CSS方法的一个库就诞生了。。
Javascript 相关文章推荐
asp批量修改记录的代码
Jun 25 Javascript
JavaScript Accessor实现说明
Dec 06 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
jQuery插件ajaxfileupload.js实现上传文件
Oct 23 Javascript
Angularjs过滤器使用详解
May 25 Javascript
JS检测是否可以访问公网服务器功能代码
Jun 19 Javascript
vue插件vue-resource的使用笔记(小结)
Aug 04 Javascript
在vscode中统一vue编码风格的方法
Feb 22 Javascript
vue路由 遍历生成复数router-link的例子
Oct 30 Javascript
vue.js实现h5机器人聊天(测试版)
Jul 16 Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 Javascript
Javascript实现单选框效果
Dec 09 Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 #Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 #Javascript
chrome原生方法之数组
Nov 30 #Javascript
使用Javascript接收get传递的值的代码
Nov 30 #Javascript
关于递归运算的顺序测试代码
Nov 30 #Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
Nov 30 #Javascript
Jquery插件之打造自定义的select标签
Nov 30 #Javascript
You might like
PHP实现用户认证及管理完全源码
2007/03/11 PHP
php开发工具之vs2005图解
2008/01/12 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
jquery之Document元素选择器篇
2008/08/14 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
Python中的并发编程实例
2014/07/07 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
python 实现兔子生兔子示例
2019/11/21 Python
使用Tkinter制作信息提示框
2020/02/18 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
为什么group by 和order by会使查询变慢
2014/05/16 面试题
公益广告语集锦
2014/03/13 职场文书
奖励申请报告范文
2015/05/15 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫
CSS的calc函数用法小结
2022/06/25 HTML / CSS