代码改变世界

随笔分类 - JavaScript

我的JavaScript之旅——this到底是啥?

2010-09-25 22:17 by 菜阿彬, 3260 阅读, 收藏, 编辑
摘要: 下图是在ASP.NET中为button挂上客户端onclick事件的两种办法:图中的2和3/1。结果发现两种方式调用同样一个函数clickMe,this却不一样。    如果采用3或1的做法,那么点击button1后将alert出[object DOMWindow];而采用2的做法,将alert出[object HTMLInputElement](在chrome下测试。)  显然,在1的做法中,t... 阅读全文

我的JavaScript之旅——“闭包”是什么时候创建的

2010-09-14 21:43 by 菜阿彬, 3318 阅读, 收藏, 编辑
摘要: [代码]对于这样一个简单的闭包函数,下面两种调用方式有什么不一样的地方?[代码][代码]此篇试图解答这个问题。先复习一下:上篇文章说到,每次执行一个function时,就会进入一个新的“执行上下文”(execution context)。context的几个重要属性:  1, 有一个对应的variable object;在global context中就是global ob... 阅读全文

我的JavaScript之旅——从Scope Chain到Closure

2010-09-05 16:46 by 菜阿彬, 2960 阅读, 收藏, 编辑
摘要: [代码]执行上面这段代码的过程中,有哪些事情发生?Inner函数为什么可以引用Outer函数的参数x?closure是怎么实现的?本文试图回答这些问题。术语本文虽然所讲理论并不复杂,但用到不少名词,初读时相对比较晦涩,下面列出术语和简短解释,便于阅读时随时查看。global:engine预先创建好的一个object,里面有所有built-in objects的属性。globalContext:本文... 阅读全文

我的Javascript之旅——new关键字的玄机,以及其它

2010-08-25 16:29 by 菜阿彬, 4205 阅读, 收藏, 编辑
摘要: (接上)先看张对老手不新鲜但对菜鸟很有趣的图: What the heck is that? 简直是luan lun。new抛开上面的图,先看看上篇文章留下的第二个问题,让我们在构造器的函数体内加点东西,看会发生什么。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->function A(){this.p =1}var a =new A()会得到如下结果: 为什么用new关键字构造出来的a,会获得p这个属性?new A()这行代码做了什么... 阅读全文

我的Javascript之旅——对象的原型链之由来

2010-08-25 11:30 by 菜阿彬, 3530 阅读, 收藏, 编辑
摘要: 本人是Javascript菜鸟,下面是前几天学习Javascript的旅程心得,希望对和我一样的入门者有点用,也希望高手批评指正。以问题开始:[代码]上面两行代码会创建几个对象(object)?要回答这个问题,先明确一下Javascript里object的概念。Objects在Javascript里,几乎一切都是object(Arrays、Functions、Numbers、Objects&hel... 阅读全文