一、对象的声明
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!"); }