2011年5月30日
摘要: web2.0 = 我提供功能 + 你创造内容,最终目的只不过是留住用户!SNS本质是关系粘性:共性是一种关系功能是一种共性需求或行为待续。。。。 阅读全文
posted @ 2011-05-30 13:29 黑妞haha 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 作者: 阮一峰日期: 2009年5月30日1.前几天,我才知道有一种简化的数据交换格式,叫做yaml。我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开。它说,从结构上看,所有的数据(data)最终都可以分解成三种类型:第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词。第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海"。第三种类型是映射(mapping),也就是一个名/值对(N 阅读全文
posted @ 2011-05-30 13:16 黑妞haha 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 作者: 阮一峰日期: 2010年5月24日昨天,我本来打算,把这个话题结束了。但是,写到一半的时候,我突然意识到,Javascript的继承有两种。一种是基于"函数对象"的继承,也就是一个function去继承另外一个function,这个我已经在昨天介绍过了。另一种则是基于"非函数对象"的继承,不涉及function。它的做法与前一种情况完全不同。一、什么是"非函数对象"的继承?比如,现在有一个对象,叫做"中国人"。 var Chinese = { nation:'中国' };还有一个对象,叫做& 阅读全文
posted @ 2011-05-30 13:14 黑妞haha 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 上一次的文章,主要介绍了如何"封装"数据和方法,从原型对象生成实例。今天要介绍的是,多个原型对象之间如何"继承"。比如,现在有一个"动物"对象, function Animal(){ this.species = "动物"; }还有一个"猫"对象, function Cat(name,color){ this.name = name; this.color = color; }怎样才能使"猫"继承"动物"呢?1. 原型对象绑定最简单的方法,大概就是使用ca 阅读全文
posted @ 2011-05-30 13:13 黑妞haha 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 作者: 阮一峰日期: 2010年5月17日学习Javascript,最难的地方是什么?我觉得,Object(对象)最难。因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了Object-Oriented JavaScript和Professional JavaScript for Web Developers (2nd Edition)这两本书。它们都是非常优秀的Javascript读物,推荐阅读。笔记分成两部分。今天的第一部分是讨论"封装"(Encapsulation), 阅读全文
posted @ 2011-05-30 13:12 黑妞haha 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 作者: 阮一峰日期: 2009年8月30日闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999; function f1(){ alert(n); } f1(); // 999另一方面,在函数外部自然无法读取函数内的局部变量。 function f1(){ var 阅读全文
posted @ 2011-05-30 13:07 黑妞haha 阅读(414) 评论(0) 推荐(1) 编辑
  2011年5月29日
摘要: 在javascript中,只有函数具有作用域,在一个函数中声明的变量在函数外部无法访问.//返回一个内嵌函数是创建闭包最常用的手段function foo(){ var a = 10; function bar(){ a *= 2; return a; } return bar;}var baz = foo();baz();//20baz();//40baz();//80var blat = foo();blat();//20待续... 阅读全文
posted @ 2011-05-29 00:39 黑妞haha 阅读(971) 评论(1) 推荐(0) 编辑
  2011年5月28日
摘要: 精华部分:一 函数是头等对象函数是有词法作用域的闭包二 基于原型继承的动态对象对象无类别,可通过普通赋值给任何对象增加一个新成员元素.一个对象可以从另一个对象继承成员元素.三 对象字面量和数组字面量var myObj = {};var myArray = [];这对创建新的对象和数组是一种非常方便的表示法.糟粕部分:一 function语句对比函数表达式//function语句function foo(){ //do};//函数表达式,推荐写法var foo = function(){ //do};//一个语句不能以函数表达式开头,解决办法是把函数表达式写成如下//这种语法创建了匿名函数,没有 阅读全文
posted @ 2011-05-28 23:21 黑妞haha 阅读(557) 评论(1) 推荐(0) 编辑
摘要: 设计原则:减少重复性代码尽量弱化对象间的耦合问题:让一个类继承另一个类会导致二者产生强耦合,即一个类依赖于另一类的内部实现.javascript中的继承是基于对象的原型式继承,可以用来模仿基于类的类式继承.一 伪类继承通过用函数来声明类、用关键字new来创建实例。var Mammal = function(name){ this.name = name;}Mammal.prototype.get_name = function(){ return this.name;}Mammal.prototype.says = function(){ return this.saying || ' 阅读全文
posted @ 2011-05-28 23:02 黑妞haha 阅读(886) 评论(0) 推荐(0) 编辑
摘要: 一 概念在js中,数组是对象,函数是对象,正则表达式是对象.js包括一个原型链特性,允许对象继承另一对象的属性,正确使用可减少对象初始化的时间和内存消耗.二 创建对象//Anim classvar Anim = function(){ ...};Anim.prototype.start = function(){ ...};Anim.prototype.stop = function(){ ...};//Usagevar myAnim = new Anim();myAnim.start();...myAnim.stop();也可以将类的定义封装在一条声明中://Anim classvar An 阅读全文
posted @ 2011-05-28 22:15 黑妞haha 阅读(366) 评论(1) 推荐(0) 编辑