JavaScript面向对象之对象的声明、遍历和存储

一、对象的声明

 

1. 使用字面量(json格式)的方式构建对象

var obj={
   属性名:属性值,
   方法名:function(){
      //函数执行体
   }
}

 

2. 使用 new Object() 的方式构建对象

var obj=new Object();
obj.属性名=属性值;
obj.方法名=function(){
   //函数执行体
}

 

3. 使用 Object.create(obj) 的方式构建对象

var Foo={
   属性名:属性值,
   方法名:function(){
      //函数执行体
   }
}
var obj=Object.create(Foo);

注意:使用此方式创建出来 obj.__proto__ = Foo

 

4. 使用构造函数的方式构建对象

function Foo([参数列表]){
   this.属性名=属性值;
   this.方法名=function(){
      //函数执行体
   }
}
var obj=new Foo(参数);

 

5. 使用工厂方式构建对象

function createObject(nam,age){
   var Foo=new Object();
   Foo.name=name;
   Foo.age=age;
   Foo.run=function(){
      return this.name+this.age
   };
   return Foo;
}
var obj1=createObject(‘zhangsan’,100);
var obj2=createObject(‘lisi’,200);

 

6. 使用原型模式构建对象

function Foo(){
   Foo.prototype.属性名=属性值;
   Foo.prototype.方法名=function(){
      //函数执行体
   }
}
var obj=new Foo();

 

7. 使用混合模式构建对象

function Foo(参1,参2){
   this.属性名1=参1;
   this.属性名2=参2;
}
Foo.prototype.方法名=function(){
   //执行代码
}
var obj=new Foo(参1,参2);

 

 

二、对象的遍历

 

  • for-in是为遍历对象而设计的,不适用于遍历数组。

  • 遍历数组的缺点:数组的下标index值是数字,for-in遍历的index值"0","1","2"等是字符串

var obj={
    name:"Zhangsan",
    age:"18",
    action:function(){
        alert("Hello!");
    }
}
for (var i in obj){
    console.log(i);    //控制台依次显示:name  age  action
}
for (var i in obj){
    console.log(obj[i]);    //控制台依次显示:Zhangsan  18  ƒ (){alert("Hello!");}
            alert("Hello!");
        }
}

 

 

三、对象的存储

 

var obj={}
    obj.name="Zhangsan";
    obj.age="18";
    obj.action=function(){
        alert("Hello!");
    }

 

 
posted @ 2019-07-04 14:57  Leophen  阅读(507)  评论(0编辑  收藏  举报