firebug的一个有趣现象
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方法的一个库就诞生了。。
转载于:https://www.cnblogs.com/wangwc/archive/2011/11/28/2266286.html
firebug的一个有趣现象相关推荐
- 发现魔方阵的一个有趣现象
昨天机器上装了一个MatLab 6.5,无意中发现一个有趣的现象: n阶魔方阵的行列式值等于零.条件是(n mode 2 = 0 and n > 2); 我做了验证如下: >> A= ...
- windows 98 设置 TEMP 环境变量时的一个有趣现象
今天设置 windows 98 的 TEMP 环境变量时,发现了一个有意思的现象: 当我使用: SET TEMP=D:/win98temp SET TMP=D:/win98temp 时, 在dos窗口 ...
- 关于context:property-placeholder的一个有趣现象
早上往项目里面整合redis时,一直报下面的错,上网查了一下,终于解决了!(⊙o⊙)! org.springframework.beans.factory.BeanDefinitionStoreExc ...
- 有趣现象:同一个java文件中有2个类,一个public,一个无类修饰符,各有一个main函数,谁在前先执行谁!
发现一有趣现象:同一个java文件中有2个类,一个public,一个无类修饰符,个有一个main函数,谁在前先执行谁! //Detergent.java //Class:Detergent,Clean ...
- 一个有趣的实验:用0.1f 替换 0,性能提升 7 倍!
点击关注上方"视学算法",设为"置顶或星标",第一时间送达技术干货. 本文来源:http://cenalulu.github.io/linux/about-de ...
- CFile类打开文件的有趣现象
CFile类打开文件的有趣现象 作者:lypindream 下载源代码 在编制对话框应用程序的过程中,我发现一个很有趣的现象,就是当使用CFile类的Open成员函数打开一个文件时,如果不指定文件的路 ...
- Python有趣现象(不定时更新)
1.list中extend方法有趣现象 1.1 List+=Str 与 List.extend(Str) 1 list1 = [11,2,45] 2 str1 = 'Michael' 3 list1. ...
- 自定义变量的一个有趣案例
老叶: 大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子 今天在群里看到一个有趣的案例 直接上案例 root@mysql3306.sock>[test]>create table t ...
- 事件监听中的冒泡流和捕获流有趣现象
事件监听中的冒泡流和捕获流有趣现象 这两天在看js权威指南的时候看见addEventListener的第二个参数为使用哪一种事件流,实践了一下,然后想到一个有趣的事,如果两个一起用会怎么样. 首先看看 ...
最新文章
- 怎样安全的使用可变参数宏__VA_ARGS__
- 虚拟的云服务器需要重启吗,虚拟主机重启服务器吗
- 75. Sort Colors - LeetCode
- ASP.NET MVC多语言 仿微软网站效果(转)
- 【elasticsearch】ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]
- mysql 外键 失败_存在外键时,MySQL 5.5外键约束失败
- Kaggle 年度报告出炉:数据科学家年轻高学历,薪资近百万
- 边框border(HTML、CSS)
- Thread.Sleep太久,界面卡死
- failed to fetch url linux,ubuntu apt-get下载报failed to fetch错误,请问如何解决
- 【OR】YALMIP 几何规划
- Foxit Quick PDF Library License Key
- leapftp download,leapftp download如何下载,软件介绍
- 原来使用 Pandas 绘制图表也这么惊艳!
- 嵌入式lab3——自行车码表
- Pr2019 安装教程
- 淘宝客网站应该怎么优化?
- Unity实现圆形旋转滚动视图
- 直击JDD | 陈生强:京东数科的底层是数字化操作系统
- AndroidWear 手持设备与穿戴设备的通知同步