猿问

JS 使用“构造函数”和“内置对象(Object)”创建对象有什么区别?

var myArr = Object();

myArr.name = "javascript";

myArr.age = 2017;

console.log(myArr);//Object {name: "javascript", age: 2017}

console.log(typeof myArr);//object

console.log(myArr.name);//javascript


function Fun(){}


var a = new Fun();

a.name = "javascript";//去掉new后,Cannot set property 'name' of undefined

a.age = 2017;//去掉new后,Cannot set property 'age' of undefined

console.log(a);//Fun {name: "javascript", age: 2017}

console.log(typeof a);//object

console.log(a.name);//javascript

上面代码中,使用“内置对象Object”创建对象,可以不使用new,Array也可以不使用new。

但是使用构造函数创建对象的话,如果不使用new就只是一个函数的返回值,也无法创建属性。

在我的理解,他们都是对象,为什么创建的时候就有区别了呢?

这是不是因为“Object”本来就是对象,而构造函数是通过函数封装的对象的原因呢?

我也不知道为什么我会有好多千奇百怪的问题。。。


繁华开满天机
浏览 1139回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答