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 相关文章推荐
ppk谈JavaScript style属性
Oct 10 Javascript
javascript多种数据类型表格排序代码分析
Sep 11 Javascript
基于jQuery选择器的整理集合
Apr 26 Javascript
仿谷歌主页js动画效果实现代码
Jul 14 Javascript
jQuery回调函数的定义及用法实例
Dec 23 Javascript
JavaScript 基本概念
Jan 20 Javascript
2种jQuery 实现刮刮卡效果
Feb 01 Javascript
jQuery搜索同辈元素方法
Feb 10 Javascript
es6学习之解构时应该注意的点
Aug 29 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
Mar 07 Javascript
JS函数进阶之继承用法实例分析
Jan 15 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
Jun 05 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使用xmllint命令处理xml与html的方法
2014/12/15 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
改变javascript函数内部this指针指向的三种方法
2010/04/23 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
python实现计算资源图标crc值的方法
2014/10/05 Python
Python算法应用实战之队列详解
2017/02/04 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
python对XML文件的操作实现代码
2020/03/27 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
在线课程:Skillshare
2019/04/02 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
linux面试题参考答案(9)
2015/01/07 面试题
学习雷锋倡议书
2014/04/15 职场文书
挂靠协议书范本
2014/04/22 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
2015年教研员工作总结
2015/05/26 职场文书
何玥事迹观后感
2015/06/16 职场文书
考研经验交流会策划书
2015/11/02 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
python not运算符的实例用法
2021/06/30 Python
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android