You are on page 1of 16

Web2.

0 与 JS 开发
深圳 .NET 俱乐部
THIN

1
THIN(http://thinhunan.cnblogs.com)
内容介绍
 程序员创业--从象棋说起
 2005年的两个名词--“超女”、
“ Web2.0”
 Web2.0 时代的 JS 开发( 1 )--
OOJS

2
THIN(http://thinhunan.cnblogs.com)
内容介绍
 Web2.0 时代的 JS 开发( 2 )--
DOM
 Web2.0 时代的 JS 开发( 3 )--
AJAX 基础 (XMLHTTP)

3
THIN(http://thinhunan.cnblogs.com)
中国象棋中的奥秘
 中国象棋中的棋子,可以用来解读我们所处
的职场
 不同的棋子代表不同的角色
 “ 被限制的兵卒”
 “ 通天本领的车马”
 “ 看似无能,实为关键的将帅”
 何为“兵卒”所为?
 何为“车马”所为?
 何为“将帅”所为--我现无资格讲叙此级

4
THIN(http://thinhunan.cnblogs.com)
程序员职场出路
 我们应有创业激情
 我们为什么要创业--不愿被限制,不
愿老为他人做嫁衣
 我们怎么创业?

5
THIN(http://thinhunan.cnblogs.com)
“ 超女”、“博客”、“维客
”……
 何为Web2.0 的核心概念
 众人拾柴火焰高
 新的模式孕育新的商机
 新的模式提供成本最低的创业机会

6
THIN(http://thinhunan.cnblogs.com)
Web2.0 为我们提供了一个新的舞台
 Web2.0 的技术门槛
 AJAX ,让我们不得不重新审视
JavaScript 的重要性
 大量 JavaScript 的使用,使我们不得不
重新考虑脚本的工程化组织,基于
JavaScript 的基于对象特性,根据 OO 思
想开发可复用的 JavaScript 代码

7
THIN(http://thinhunan.cnblogs.com)
定义一个类
 使用 function 关键字来定义
function ClassName()
{
……
}

8
THIN(http://thinhunan.cnblogs.com)
定义属性
1. 实例属性
function ClassName()
{
this.PropertyName;// 只能通过实例访问
}
2. 原型属性
ClassName.protetype.PropertyName = value;
// 可通过实例 ( 解释器自动复制给实例 ) 和原型 (prototype) 访问 ,
改变实
例的从类定义获得的属性的值不会影响类的原型属性值和其它该类
的实例的该原型属性的值,改变类原型的静态属性值将改变所有该
类实例的该属性的值。
3. 静态属性
ClassName.PropertyName = value;// 只能通过类名访问

9
THIN(http://thinhunan.cnblogs.com)
定义一个方法
 定义方法和属性一样可以用三种方式定义,
其区别和属性一样
 需使用 function 关键字
function ClassName()
{
this.FunctionName = function()
{
……
}
}

10
THIN(http://thinhunan.cnblogs.com)
定义一个方法
 定义实例方法时,this 不能随便省略
 三种方法定义的类的方法,其中的 this
指针是不同的,前两种都可以指向类的
实例,最后一种不能。

11
THIN(http://thinhunan.cnblogs.com)
继承
用 prototype 实现
SubClass.prototype = new BaseClass();
//new BaseClass; 也行
SubClass.constructor = SubClass ;
// 这样可能还不能使子类实例通过
constructor 得到正确的类 , 最好在定义
时, this.constuctor = SubClass;
 父类的 constructor 在子类的
constructor 之前调用
 DOM 对象 instanceOf Object = false;

typeof constructor
THIN(http://thinhunan.cnblogs.com)
= ‘undefined’; 12
重载
 同样是通过 prototype 来实现
NewClass.prototype.toString = function()
{ return “Hello world!”; }// 重载了
Object 的 toString 方法
 重载时,一般要全部重新实现方法的功
能,如果要调用父类的方法实现,可实
现一个父类的实例,再调用这个实例的
方法
13
THIN(http://thinhunan.cnblogs.com)
重载 ( 有版本要求 )
 要实现对父类实现的调用

在 Jscript 5.5 以上版本,用 call 函数

SubClass.prototype.Function=function(arg
s){
BaseClass.prototype.Function.call(this,arg
s);
//do something… }
在 NS 中可以用 __proto__ 返回父类原型 14
, this._proto__ 相当于 C #的 base
THIN(http://thinhunan.cnblogs.com)
访问限制
 Javascript 提供了对象中的 private 和
public ,但是并不提供显式声明,在类
内部函数中定义的函数和变量都是私有
变量,通过 this.XXX 定义的都是 public
实现的,通过 object.prototype.name 实
现的也是 public, 在类函数中的函数可以
访问那些私有变量和函数,通过
object.prototype.name 那样实现的方法是
无法访问私有变量和方法的。
15
THIN(http://thinhunan.cnblogs.com)
其他信息
Web2.0 时代的 JS 开发( 2 )-- DOM
Web2.0 时代的 JS 开发( 3 )-- AJAX
基础 (XMLHTTP)

MSN:thin37421@hotmail.com
http://thinhunan.cnblogs.com
http://shenzhen.cnblogs.com/

16
THIN(http://thinhunan.cnblogs.com)

You might also like