代码改变世界

从一个实例,看new FunctionName()的内部机制

2013-10-07 20:37 by youxin, 266 阅读, 0 推荐, 收藏,
摘要:下面的代码:function Dog(name) { this.name = name; Dog.prototype = { shout: function() { alert("I am " + this.name); } }; } var dog1 = new Dog("Dog 1"); dog1.shout();上面的代码看起来很“优美”,可一运行,却报错:Object # has no method 'shout'在YUI 3 学习笔记:oop中,曾提到过,对于代码:Fn() {}; var fn = new Fn();new . 阅读全文

矩阵转置 O(1)空间

2013-10-07 19:04 by youxin, 866 阅读, 0 推荐, 收藏,
摘要:题目:用O(1)的空间实现矩阵的转置为了方便,使用一维数组来分析。所谓矩阵转置,行变列,列变行。在转置的过程中,有的元素位置是不变的;对于变化位置的元素,要求O(1)空间完成,那么这些位置的变化一定是有着规律的。举例,2×5的矩阵,A={0,1,2,3,4,5,6,7,8,9};转置后为AT={0,5,1,6,2,7,3,8,4,9},探索下标变化:0->01->2->4->8->7->5->13->6->39->9这些下标的变化是一些环,如果我们能找到这个环,对环做移动处理,就可以O(1)完成了。现在的问题是,我们如何知道 阅读全文

不要将 Array、Object 等类型指定给 prototype

2013-10-07 15:06 by youxin, 246 阅读, 0 推荐, 收藏,
摘要:在 JavaScript 中,注意不要将 Array、Object 等类型指定给 prototype,除非您的应用需要那么做。先观察如下代码:functionFoo(){}Foo.prototype.n = 123;Foo.prototype.date = { year:2009, month:6, day:25 };varf1 =newFoo();varf2 =newFoo();f1.n = 456;f1.date.day = 24;alert(f2.n);// 结果为 123alert(f2.date.day);f2.date.day 结果是多少?25?错,应该是 24。这是由于 Arra 阅读全文

javascript线程解释(setTimeout,setInterval你不知道的事)

2013-10-07 03:06 by youxin, 8185 阅读, 1 推荐, 收藏,
摘要:john resig写的一篇文章:原文地址:http://ejohn.org/blog/how-javascript-timers-work/作为入门者来说,了解JavaScript中timer的工作方式是很重要的。通常它们的表现行为并不是那么地直观,而这是因为它们都处在一个单一线程中。让我们先来看一看三个用来创建以及操作timer的函数。var id = setTimeout(fn, delay);- 初始化一个单一的timer,这个timer将会在一定延时后去调用指定的函数。这个函数(setTimeout)将返回一个唯一的ID,我们可以通过这个ID来取消timer。var id = set 阅读全文

JS 中没有按地址(引用)传递,只有按值传递

2013-10-07 01:39 by youxin, 16054 阅读, 4 推荐, 收藏,
摘要:很多人,包括我,受书本知识消化不彻底的影响,认为 JS 中参数有两种传递方式:数字、字符串等按值传递;数组、对象等按地址(引用)传递。对此种观点,我们要谨慎。var v1 = []var v2 = {};var v3 = {};function foo(v1, v2, v3){ v1 = [1]; v2 = [2]; v3 = {a:3}}foo(v1, v2, v3);alert(v1); // 空白alert(v2); // [object Object]alert(v3.a); // undefined由此可见:v1、v2、v3 都没有被改变,v1 仍然是零个元素的数组... 阅读全文

javascript 误用this指针 的情况

2013-10-06 23:36 by youxin, 551 阅读, 0 推荐, 收藏,
摘要:理解了this指针后,我们再来看看一些很容易误用this指针的情况。示例1——内联式绑定Dom元素的事件处理函数 function sayHi(){ alert("当前点击的元素是" + this.tagName); } script>在此例代码中,我们绑定了button的点击事件,期望在弹出的对话框中打印出点击元素的标签名。但运行结果却是:也就是this指针并不是指向input元素。这是因为当使用内联式绑定Dom元素的事件处理函数时,实际上相当于执行了以下代码: document.getElementById("btnTest").onclick 阅读全文

转:onkeypress、onkeydown、onkeyup 区别

2013-10-06 21:57 by youxin, 891 阅读, 0 推荐, 收藏,
摘要:在使用JavaScript做WEB键盘事件侦听捕获时,主要采用onkeypress、onkeydown、onkeyup三个事件进行出来。该三个事件的执行顺序如下:onkeydown -> onkeypress ->onkeyup。在一般情况下,采用三种键盘事件均可对键盘输入进行有效的响应。当在实际使用中,会发现这几者有些不同的差别。 onkeypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应,onkeydown和onkeyup均可以对系统功能键进行有效的拦截,但事件截获的位置不同,可以根据具体的情况选择不同的键盘事件。 由于onkey 阅读全文

jQuery.fn和jQuery.prototype jquery.extend() jquery.fn.extend()区别介绍

2013-10-06 21:43 by youxin, 549 阅读, 0 推荐, 收藏,
摘要:这里的 jQuery , jQuery.fn , jQuery,fn,init ,jQuery,prototype 都代表什么。来看下jQuery的源码是怎么样定义的:(function( window, undefined ) { var jQuery = (function() { // 构建jQuery对象 var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); } // jQuery对象原型 jQuery.fn = jQuery.pr 阅读全文

老鼠走迷宫问题

2013-10-06 21:25 by youxin, 3838 阅读, 0 推荐, 收藏,
摘要:问题:题目:在二维数组中使用2来代表墙壁,1来代表老鼠的行径,试写出代码求得老鼠由入口走到出口的路线(一条便可)。输入:输入一个二维数组,2代表墙壁,0代表空(表示可走),再输入起点和终点坐标,输出整个数组,2代表墙壁,将可行路线(一条)中的0换成1。还可以换一种 描述:有一个迷宫,在迷宫的某个出口放着一块奶酪。将一只老鼠由某个入口处放进去,它必须穿过迷宫,找到奶酪。请找出它的行走路径。解法:这个问题可以用递归的方法去求解。 绿色箭头指向的是迷宫的入口,将小老鼠由此放入,红色箭头的位置就是奶酪的所在地,小老鼠必须穿过迷宫从红色箭头标示的地方走出去。我们用一个二维数组来表示迷宫,用2表示迷宫的墙 阅读全文

dom元素和方法总结

2013-10-06 18:24 by youxin, 540 阅读, 0 推荐, 收藏,
摘要:主要是参考《精通javascript》。全局变量有:document。这个变量包含浏览器的html dom文档的引用。HTMElement这个变量是所要html dom 元素的超类对象,扩展这个变量的原型prototype就可以扩展所有的html dom元素。HTMLElement.prototype.newFunciton=function() {.......};dom操作如下:body document.body直接执行body元素。getElementByIdgetElementsByTagNamechildNodes. 下面展示了如何使用childNodes属性为一个父元素的所有子元 阅读全文
上一页 1 ··· 121 122 123 124 125 126 127 128 129 ··· 269 下一页