javascript面向对象的知识总结

面向对象的三大特征:封装、继承、多态。

面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象


创建一个对象然后给对象新建属性和方法。

第一种方法:

   

var box=new Object();

box.name='wang';//创建一个name属性并赋值

box.age=100;//创建一个age属性并赋值

box.run=function(){
  return this.name+" "+this.age+'运用中';
}

alert(box.run());//输出属性和方法的值
//输出结果为:
//=>wang 100运行中 

 

上面创建了一个对象,并且创建了其属性和方法,在run方法中的this,就是代表box对象本

身,这是js中创建对象最基本的方式,但如果需要创建多个对象就会产生大量的代码。

为了解决多个类似对象声明的问题我们可以使用一种叫做“工厂模式”的方法,这种方法就是

为了解决实例化对象产生大量重复的问题。

第二种方法:

function creatObject(name,age){ //集中实例化函数
  
  var obj=new Object();
  
  obj.name = name;
  
  obj.age = age;
  
  obj.run = function(){
  
    return this.name+" "+this.age+"运用中...";
  
  }
  
  return obj;

}



调用以上方法构建实例对象:

var box1 = createObject('Lee', 100);//第一个实例

var box2 = createObject ('Jack',200);//第二个实例

alert(box1.run());   

//输出结果为:

//Lee 100运行中...

alert(box2.run());   

//输出结果为:

//Jack 200运行中...

采用构造函数的方法来构建相应的对象:
function Box(name,age){//构造函数模式

  this.name=name;

  this.age=age;
  this.run=function(){

    return this.name+this.age+"运用中"

  };

};

var box1=new Box("Lee","100");

var box2=new Box("Jack","200");

alert(box1.run);
//输出结果为:
//=>Lee100运用中
alert(box1 instanceof Box);
//输出结果为:
//=>true 
//表示box1属于Box

使用了构造函数的方法,和使用工厂模式的方法他们不同之处如下:

1.构造函数方法没有显示的创建对象(new Object());
2.直接将属性和方法赋值给 this 对象;
3.没有 renturn 语句。
构造函数的方法有一些规范:
1.函数名和实例化构造名相同且大写,(PS:非强制,但这么写有助于区分构造函数和
普通函数);
2.通过构造函数创建对象,必须使用 new 运算符。




猜你喜欢

转载自1508144386.iteye.com/blog/2414417