摘要:昨天看一篇技术文章的时候遇到了以下的代码: var y = "global"; function constructFunction() { var y = "local"; return new Function("return y"); // 无法获取局部变量 } alert(constructFunction()()); // 输出 "global"刚开始看到这段代码的时候便有两个疑问:1.new Function("return y");这是什么写法?2.为什么最后输出的是“global 阅读全文
转载:Javascript面向对象编程(三):非构造函数的继承
2011-10-17 16:54 by 呦菜, 218 阅读, 0 推荐, 收藏, 编辑
摘要:这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承"。今天是最后一个部分,介绍不使用构造函数实现"继承"。一、什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。 var Chinese = { nation:'中国' };还有一个对象,叫做"医生"。 var Doctor ={ career:'医生' }请问怎样才能让"医生"去继承"中国人",也就是说,我怎样才能生成一 阅读全文
转载:Javascript面向对象编程(二):构造函数的继承
2011-10-17 16:53 by 呦菜, 228 阅读, 0 推荐, 收藏, 编辑
摘要:这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。今天要介绍的是,如何生成一个"继承"多个对象的实例。比如,现在有一个"动物"对象的构造函数, function Animal(){ this.species = "动物"; }还有一个"猫"对象的构造函数, function Cat(name,color){ this.name = name; this.color = color; }怎样才能使"猫"继承"动物"呢?1. 构 阅读全文
转载:Javascript 面向对象编程(一):封装
2011-10-17 16:51 by 呦菜, 208 阅读, 0 推荐, 收藏, 编辑
摘要:学习Javascript,最难的地方是什么?我觉得,Object(对象)最难。因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了 以下两本书籍:《面向对象的Javascript》(Object-Oriented JavaScript)《Javascript高级程序设计(第二版)》(Professional JavaScript for Web Developers, 2nd Edition)它们都是非常优秀的Javascript读物,推荐阅读。笔记分成三部分。今天的第一部分是讨论" 阅读全文
JS 简单的匿名函数
2011-10-17 15:32 by 呦菜, 250 阅读, 0 推荐, 收藏, 编辑
摘要:匿名函数没有函数名,但可以被赋值给变量。示例1:(function(){ var doo = 2; var foo = 10; alert(doo*foo);})();这是一个匿名函数,函数在定义之后便立即执行,出现在函数声明之后的一对括号立即对函数进行调用。示例2:(function(doo,foo){ alert(doo*foo);})(10,2);这个匿名函数是将变量作为参数从外部传入。同时,匿名函数也可以返回值赋给一个变量,如示例3:var bar = (function(doo,foo){ return(doo*foo);})(10,2);alert(b... 阅读全文
Javascript语言特性
2011-10-14 13:38 by 呦菜, 548 阅读, 1 推荐, 收藏, 编辑
摘要:对象对象使用和属性JavaScript 中所有变量都是对象,除了两个例外 null 和 undefined。false.toString() // 'false'[1, 2, 3].toString(); // '1,2,3'function Foo(){}Foo.bar = 1;Foo.bar; // 1一个常见的误解是数字的字面值(literal)不是对象。这是因为 JavaScript 解析器的一个错误, 它试图将点操作符解析为浮点数字面值的一部分。2.toString(); // 出错:SyntaxError有很多变通方法可以让数字的字面值看起来像对象。 阅读全文
JS 函数小测试
2011-10-14 11:25 by 呦菜, 320 阅读, 0 推荐, 收藏, 编辑
摘要:再看一遍文章的时候看到了关于匿名函数赋值给变量的例子,做了如下测试:code1:foo();function foo(){ alert("ss");}foo();测试结果是弹出了两次“ss”,说明在function foo()之前执行的foo()也是有执行的,这是因为function foo(){ alert("ss");}这个方法会在执行前被解析,因此它存在于当前上下文的任意一个地方,即使在函数定义体的上面被调用也是对的。那对于匿名函数赋值给变量的方法下是什么结果呢?code2:var doo = function() {alert("dd& 阅读全文
使用Fiddler提高前端工作效率 (实例篇)
2011-10-13 11:58 by 呦菜, 256 阅读, 0 推荐, 收藏, 编辑
摘要:在上一篇(介绍篇)中,我们对Fiddler Web Debugger有了简单的接触,也许你已经开始在用Fiddler进行HTTP相关的调试,在这一篇,我们将通过一个实例了解Fiddler的神奇魔法。在我们前端开发的日常工作中,发现服务器上某个css/javascript文件有问题,需要修改,那真是家常便饭。通常,我们需要将文件进行修 改,然后重新发布再验证,这样就很容易影响到生产环境的稳定性。更普遍的做法是,我们在开发环境中修改文件并验证,然后发布到生产环境。虽然安全,却比较 繁琐。而利用Fiddler的可以修改HTTP数据的特性,我们就非常敏捷地基于生产环境修改并验证,确认后再发布。假设我们 阅读全文
转载:Fiddler提高工作效率(介绍篇)
2011-10-13 11:57 by 呦菜, 295 阅读, 0 推荐, 收藏, 编辑
摘要:1. Fiddler 是什么?Fiddler是用C#编写的一个免费的HTTP/HTTPS网络调试器。英语中Fiddler是小提琴的意思,Fiddler Web Debugger就像小提琴一样,可以让前端开发变得更加优雅。Fiddler是以代理服务器的方式,监听系统的网络数据流动。运行Fiddler后,就会在本地打开8888端口,网络数据流通过Fiddler进行中转时,我们可以监视HTTP/HTTPS数据流的记录,并加以分析,甚至还可以修改发送和接收的数据。Fiddler还提供了清除IE缓存、请求构造器、文本转换工具等等一系列工具,对前端开发工作很有价值。2. 下载和安装Fiddler安装.ne 阅读全文
HTML集合的实时性之一个意外的死循环
2011-10-10 11:28 by 呦菜, 364 阅读, 0 推荐, 收藏, 编辑
摘要:HTML集合 处于一种“实时状态”事实存在,这意味着当底层的文档对象更新时,它也会自动更新。演示code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Con 阅读全文