创建Object(对象)实例两种方法:构造函数法和对象字面量表示法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014465934/article/details/89295457

我们如何创建一个Object(对象)实例?

两种方法:构造函数法和对象字面量表示法

1.构造函数法

var person=new Object();
person.name="zhuzhenwei";
person.age=20;

这里Object()实际上是默认的构造函数,显然,为满足需要,我们可以通过后两条语句添加新的属性。

我们还要注意一个问题,因为Object自身的属性是不可枚举的,alert(object.propertyisenumerable("prototype"));//false,所以我们使用for-in循环时得不到数据,可以试试in操作符。

var person=new Object();
for(var propName in person){
   console.log(propName);
}

//为空

//in操作符
var person=new Object();
console.log("toString" in person);//true
console.log("valueOf" in person);//true
console.log("constructor" in person);//true

2.对象字面量表示法

var person={
    name:"zhuzhenwei",
    age:18
};

这里也创建了一个对象实例,同样通过for-in语句,我们可以验证其也只有name和age两个属性,且在通过对象字面量表示法定义对象时,实际上不会调用Object构造函数。

关于对象字面量有以下一点需要注意的地方:
1.在末尾需加分号;表示结束。
2.在一个属性定义之后用逗号分隔,最后一个属性不需要
3.属性名可以加双引号,好处是我们可以包含错误的字符。并使用方括号表示法来访问对象的属性。

针对3,我们看一个例子:

//这时,由于属性名中包含了空格,因此得到的结果一定是 语法错误。
var person=new Object();
person.age age=18;
console.log(person.age age);

//这时候我们就可以得到正确的答案了。
var person={
      "age age":18
};
 console.log(person["age age"]);

3.创建数组

构造函数法:

var arr=new Array();

数组字面量:

var arr=["zhu","zhen","wei"];

因为所有的引用类型都是继承自Object,因此Array也是继承自object的,并在继承的基础上添加了自己的属性和方法。

var arr=new Array();
console.log("toString" in arr);//true
console.log("valueOf" in arr);//true
console.log("length" in arr);//true

4.对象字面量赋值比new Object()高效

在这里插入图片描述

参考文章:
https://www.cnblogs.com/zhuzhenwei918/p/6013363.html
http://www.cnblogs.com/mushishi/p/5811743.html
https://www.jianshu.com/p/17b8b3b28eae
http://www.cnblogs.com/wuyaxing/p/6416441.html

猜你喜欢

转载自blog.csdn.net/u014465934/article/details/89295457
今日推荐