首页 > 代码库 > JavaScript学习笔记——8.面向对象

JavaScript学习笔记——8.面向对象

1.封装——初始化方式

  var Cat = {
    name:‘jack‘,
    age:5,
    say:function(){
      alert(‘hello world!‘);
    }
  }

  或:

  var Cat = {}
  Cat.name = ‘jack‘;
  Cat.age = 5;
  Cat.say = function(){
    alert(‘hello world!‘);
  }

  alert(Cat.name);
  Cat.say();

2.封装——Object方式

  function Cat(name,age){
    var c = new Object();
    c.name = name;
    c.age = age;
    return c;
  }

  var cat1 = Cat(‘jack‘,5);

  alert(cat1.name);

3.封装——构造函数方式

  function Cat(name,age){
    this.name = name;
    this.age = age;
  }
  Cat.prototype.say = function(){ //利用prototype可将多个实例中相同的属性/方法指向同一内存地址
    alert(‘hello world!‘);
  }

  var cat1 = new Cat(‘jack‘,5);

  alert(cat1.name);
  cat1.say();

4.遍历

  for(var c in cat1){
    alert(c); //弹出对象的所有属性
    alert(cat1[c]); //弹出对象所有属性的值
  }

5.继承——Apply方式

  function Animal(){
    this.species = ‘动物‘;
  }
  function Cat(name){
    Animal.apply(this , arguments);
    this.name = name;
  }

  var cat1 = new Cat(‘jack‘);

  alert(cat1.species);

6.继承——prototype方式

  function Animal(){
    this.species = ‘动物‘;
  }
  function Cat(name){
    this.name = name;
  }
  Cat.prototype = new Animal(); //将Cat的原型指向Animal
  Cat.prototype.constructor = Cat; //将Cat的实例更正为继承Cat

  var cat1 = new Cat(‘jack‘);

  alert(cat1.species);

7.多态

  在一个类中定义抽象方法(只设置方法格式,不做任何具体实现)

  具有抽象方法的类成为抽象类,该类不派生任何实例,只用于被子类继承

  在子类继承后,根据自己的需求,再对原父类的抽象方法进行具体的实现

  这个过程称之为“多态”

 

作者:@zhnoah
出处:http://www.cnblogs.com/zhnoah/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 
接,否则保留追究法律责任的权利。

JavaScript学习笔记——8.面向对象