WEB开发网
开发学院网页设计JavaScript Javascript乱弹设计模式系列(0) - 面向对象基础以... 阅读

Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现

 2010-09-14 13:34:25 来源:WEB开发网   
核心提示:在开始设计模式的书写之前,有必要对Javascript面向对象的概念先做个介绍,Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现,那么这篇文章就以面向对象基础作为起点吧,理论知识1. 首先Javascript是弱类型语言,getNickName()看作是Man类的方法,准确说可以&ld

在开始设计模式的书写之前,有必要对Javascript面向对象的概念先做个介绍,那么这篇文章就以面向对象基础作为起点吧。

理论知识

1. 首先Javascript是弱类型语言,它定义变量时不必声明类型,如var Person = new Person(),它的变量类型为“var”,现在的C# 3.0也引进了这种匿名类型的概念,弱类型的变量产生了极大的灵活性,因为Javascript会根据需要来进行类型转换。所以这也决定了它采用了晚绑定的方法,即在运行后才知道变量的类型;

2. 面向对象概念不必多说,封装,继承,多态;

3. Javascript对象的类型主要分为三种:本地对象,如String,Array,Date等;内置对象,如Global,Math等;宿主对象,是指传统面向对象程序设计中的作用域,如公有,保护,私有,静态等等。

主要内容

1. 现在让我们来看看Javascript怎样创建对象的:

function Man() {
  // 
}
Man.prototype.getNickName = function() {
  return "Leepy";
};
var man = new Man();
var name = man.getNickName();

这样就创建了最简单的类和对象,其中我们可以把function Man() {} 看作是Man类的构造函数,getNickName()看作是Man类的方法,准确说可以“当作”是Man类的公共方法;为什么要说是当作呢?那是因为其实Javascript实际上并没有一个私有共有的划分,因此开发者们自己指定了这样的规约,那么规约是什么样的呢?我这里把Man类的清单完整地列出来:

function Man() {
  // 私有静态属性
  var Sex = "男";
  //私有静态方法
  function checkSex() {
    return (Sex == "男");
  }
  //私有方法
  this._getSex = function() {
    //调用私有静态方法
    if(checkSex())
      return "男";
    else
      return "女";
  }
  //私有方法
  this.getFirstName = function() {
    return "Li";
  };
  //私有方法
  this.getLastName = function() {
    return "Ping";
  };
}
//公共方法
Man.prototype.getNickName = function() {
  return "Leepy";
};
//公共方法
Man.prototype.getFullName = function() {
  return this.getFirstName() + " " + this.getLastName();
};
//公共方法
Man.prototype.getSex = function() {
  //调用私有方法
  return this._getSex();
};
//公共静态方法
Man.say = function() {
  return "Happy new year!";
}

1 2 3 4 5 6  下一页

Tags:Javascript 乱弹 设计模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接