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!");
    }
 
原文地址:https://www.cnblogs.com/Leophen/p/11132481.html