var myArr = Object();myArr.name = "javascript";myArr.age = 2017;console.log(myArr);//Object {name: "javascript", age: 2017}console.log(typeof myArr);//objectconsole.log(myArr.name);//javascriptfunction Fun(){}var a = new Fun();a.name = "javascript";//去掉new后,Cannot set property 'name' of undefineda.age = 2017;//去掉new后,Cannot set property 'age' of undefinedconsole.log(a);//Fun {name: "javascript", age: 2017}console.log(typeof a);//objectconsole.log(a.name);//javascript上面代碼中,使用“內(nèi)置對象Object”創(chuàng)建對象,可以不使用new,Array也可以不使用new。但是使用構(gòu)造函數(shù)創(chuàng)建對象的話,如果不使用new就只是一個函數(shù)的返回值,也無法創(chuàng)建屬性。在我的理解,他們都是對象,為什么創(chuàng)建的時候就有區(qū)別了呢?這是不是因為“Object”本來就是對象,而構(gòu)造函數(shù)是通過函數(shù)封裝的對象的原因呢?我也不知道為什么我會有好多千奇百怪的問題。。。
JS 使用“構(gòu)造函數(shù)”和“內(nèi)置對象(Object)”創(chuàng)建對象有什么區(qū)別?
繁華開滿天機
2018-10-12 14:09:32