代码改变世界

随笔分类 -  javascript

解析jQuery中extend方法--源码解析以及递归的过程《二》

2015-01-17 02:23 by 明朝, 1250 阅读, 收藏,
摘要: ##### 源码解析在解析代码之前,首先要了解extend函数要解决什么问题,以及传入不同的参数,会达到怎样的效果。extend函数内部处理传入的不同参数,返回处理后的对象。extend函数用来扩展对象,增加属性和方法。传入的参数有以下形式: > 详细参见:[解析jQuery中extend方法--用... 阅读全文

解析jQuery中extend方法--用法《一》

2015-01-16 12:08 by 明朝, 1358 阅读, 收藏,
摘要: extend方法在jQuery中是一个很重要的方法,jQuey内部用它来扩展属性方法。常用语jQuery插件开发。jQuery提供了两个方法,$.extend和$.fn.extend,两个方法内部实现一样,但功能用法却不一样,按照官方解释:> jQuery.extend(): Merge the c... 阅读全文

事件详解<一>

2014-11-27 17:19 by 明朝, 946 阅读, 收藏,
摘要: ###一 扭转对事件的认知>事件,是js和html交互的桥梁。当用户操作页面上的元素,比如点击,鼠标移入移出,然后做一些事情。你若触发,我便执行——事件发生,调用它的处理函数执行相应的JavaScript代码给出响应。在页面放一个元素:``以onclick为例: var oBtn = documen... 阅读全文

浅谈V8引擎中的垃圾回收机制

2014-08-12 09:32 by 明朝, 619 阅读, 收藏,
摘要: 最近在看《深入浅出nodejs》关于V8垃圾回收机制的章节,转自:http://blog.segmentfault.com/skyinlayer/1190000000440270这篇文章的所有内容均来自 朴灵的《深入浅出Node.js》及A tour of V8:Garbage Collection... 阅读全文

获取div滚动条的宽度

2014-07-31 11:50 by 明朝, 644 阅读, 收藏,
摘要: 获取滚动条的宽度:function getScrollWidth() { var noScroll, scroll, oDiv = document.createElement('div'); oDiv.style.cssText = 'position:absolute; top:-1... 阅读全文

事件模块---自定义事件和自动触发事件

2014-03-27 18:00 by 明朝, 551 阅读, 收藏,
摘要: 原理请看:http://www.cnblogs.com/snandy/archive/2011/04/08/2007976.html直接上自己一步步根据抄袭来的代码的js,自己亲手写了一遍:var Event = function (){ function _isEmptyObj(obj){ //检查是否为空对象 for(var a in obj){ return false; } return true; } function _each(ary, callback){ //遍历一个数据... 阅读全文

js零碎整理

2013-10-30 14:32 by 明朝, 232 阅读, 收藏,
摘要: 本文格式: 大整合类标题 文章标题 作者:文章网址 USA:参考老外网址/老外网址 &&: 意思是内涵一个系列 javascript方面整理: 1.for in 循环的输出顺序问题 司徒正美:http://www.cnblogs.com/rubylouvre/archive/2013/10/30/3396042.html 2.判定元素是否刚插入到DOM树 司徒正美:http://www.cnblogs.com/rubylouvre/archive/2013/10/30/339... 阅读全文

尝试回答js问题

2013-10-18 17:08 by 明朝, 1061 阅读, 收藏,
摘要: 看到@玉伯的这篇文章《Sea.js 源码解析(三)》给的几个问题,在综合下面的评论,写出自己的总结:我们知道typeof new String("xxx")返回 "object",请问typeof String("xxx")返回什么?为什么? typeof String("xxx")返回的是string。直接调用构造函数Srtring返回的是字面量,和定义一个字面量一样,var str = "xxx"; 当使用new String时候,则创造的是一个对象。像这样: function A(){}; 阅读全文

javascript判断浏览器类型与版本

2013-10-17 16:27 by 明朝, 110 阅读, 收藏,
摘要: 转自 司徒正美博客:http://www.cnblogs.com/rubylouvre/archive/2009/10/14/1583362.html 阅读全文

javascript小测试

2013-10-09 17:37 by 明朝, 603 阅读, 收藏,
摘要: 测试地址:http://toys.usvsth3m.com/javascript-under-pressure/ 在群里看到测试网站做着玩,希望你能过关,不能,且看下面答案(为了过关,不惜不够严谨): 第一题: function doubleInteger(i) { // i will be an integer. Double it and return it. //i是一个整数,返回倍数。 //可以用console.log(i)检查i是个什么数值。 i*=2 return i; } 第二题:function isNumberEven(i) { ... 阅读全文

js设计模式--策略模式

2013-09-22 12:11 by 明朝, 338 阅读, 收藏,
摘要: 策略模式:定义了一系列的算法,把他们封装起来,是它们之间可以互相替换,此模式不会影响到使用算法的客户。回忆下jquery里的animate方法:$( div ).animate( {"left: 200px"}, 1000, 'linear' ); //匀速运动$( div ).animate( {"left: 200px"}, 1000, 'cubic' ); //三次方的缓动这2句代码都是让div在1000ms内往右移动200个像素. linear(匀速)和cubic(三次方缓动)就是一种策略模式的封装。一般用在检验表 阅读全文

js设计模式--迭代器模式

2013-09-17 16:57 by 明朝, 339 阅读, 收藏,
摘要: 迭代器模式:迭代器模式提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该方法中的内部表示。js中我们经常会封装一个each函数用来实现迭代器。理解的意思:提供一个方法,去把对象的每一项按照一定的方法,访问各个元素。上代码:var agg = ((function(){ var index = 0, arr = [1,2,3,4,5,6], length = arr.length; return { next:function(){ //向下进行 var ele; ... 阅读全文

面试题自我解析

2013-09-17 15:23 by 明朝, 227 阅读, 收藏,
摘要: 面试题: var foo=1; function Foo() { alert(foo); var foo=2; alert(this.foo); this.foo=3; } var m1=Foo(); var m2=new Foo(); console.log(m1); console.log(m2);这个执行分别是undefined,1,undefined,undefined;为什么呢?当执行到这句:var m1=Foo();函数已经执行,相当于下面这种形式: function Foo() { var foo; //预解析 alert(foo)... 阅读全文

js设计模式--工厂模式

2013-09-16 19:10 by 明朝, 286 阅读, 收藏,
摘要: 工厂模式:工厂模式的目的是为了创建对象,它经常是在类和类的方法中实现。简单的工厂模式是由一个方法来决定到底要创建哪类的实例,这些实例经常拥有相同的接口,这种模式在所实例化的类型在编译期并不确定,而是在执行期决定的情况。 比如说,你有一家加工厂,生产各类牛奶:三氯氰胺奶粉,酸奶,变质奶,。。等等。当有客户跟你签约生产某种奶粉的时候,你便让工厂生产对应的奶。但如果要求生产牛肉,那肯定没有这个功能。。。 具体上代码:var Car = (function () { var Car = function (model, year, miles) { this.model = mod... 阅读全文

js设计模式--单体模式

2013-09-16 15:48 by 明朝, 254 阅读, 收藏,
摘要: GOF里的23种设计模式, 也是在软件开发中早就存在并反复使用的模式. 如果程序员没有明确意识到他使用过某些模式, 那么下次他也许会错过更合适的设计 (这段话来自《松本行弘的程序世界》).单体模式: 单体(Singleton)模式的思想在于保证一个特定类仅有一个实例。当在第二次使用同一个类创建新对象的时候,和第一次创建对象完全相同对象。 当使用new语法通过构造函数来创建对象,仅仅获得的是指向完全相同的对象的新指针: 例:function uniFn(){};var uni1 = new uniFn();var uni2 = new uniFn();uni1.constructor ==... 阅读全文