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 相关文章推荐
javascript RadioButtonList获取选中值
Apr 09 Javascript
web前端设计师们常用的jQuery特效插件汇总
Dec 07 Javascript
全面解析Bootstrap表单样式的使用
Sep 09 Javascript
jquery.validate表单验证插件使用方法解析
Nov 07 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
Nov 24 Javascript
利用CDN加速react webpack打包后的文件详解
Feb 22 Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 Javascript
微信小程序分享海报生成的实现方法
Dec 10 Javascript
用node.js写一个jenkins发版脚本
May 21 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
Nov 14 Javascript
Vue Router的手写实现方法实现
Mar 02 Javascript
Javascript表单序列化原理及实现代码详解
Oct 30 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
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
PHP实现小偷程序实例
2016/10/31 PHP
原创javascript小游戏实现代码
2010/08/19 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
Python中property属性实例解析
2018/02/10 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
什么是python的必选参数
2020/06/21 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
个人自荐书
2013/12/20 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
大学生村官考核材料
2014/05/23 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
应聘教师求职信范文
2015/03/20 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
导游词之凤凰古城
2019/10/22 职场文书
数据库连接池
2021/04/06 MySQL
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android