1.
-
通过new的方式创建对象,自己会返回一个对象
function person(firstname, lastname, age, eyecolor) { this.firstname = firstname; this.lastname = lastname; this.age = age; this.eyecolor = eyecolor; // return [this.firstname,this.lastname,this.age,this.eyecolor,this] } var myFather = new person("John","Doe",50,"blue"); var myFather2 = new person("John","Doe",50,"blue"); var myMother = person("Sally", "Rally", 48, "green"); console.log(myFather) console.log(typeof myFather) console.log(myMother) console.log(typeof myMother) console.log("----------")
2. 函数带有返回值过后, new与执行函数都会返回一个数组
function person(firstname, lastname, age, eyecolor) { this.firstname = firstname; this.lastname = lastname; this.age = age; this.eyecolor = eyecolor; return [this.firstname,this.lastname,this.age,this.eyecolor,this] } var myFather = new person("John","Doe",50,"blue"); var myFather2 = new person("John","Doe",50,"blue"); var myMother = person("Sally", "Rally", 48, "green"); console.log(myFather) console.log(typeof myFather) console.log(myMother) console.log(typeof myMother) console.log("----------")
3. 在创建对象后,对象自己可以通过“实例名.xxx”添加,但是这个函数的其他对象无法得到新的属性。
function person(firstname, lastname, age, eyecolor) { this.firstname = firstname; this.lastname = lastname; this.age = age; this.eyecolor = eyecolor; // return [this.firstname,this.lastname,this.age,this.eyecolor,this] } var myFather = new person("John","Doe",50,"blue"); var myFather2 = new person("John","Doe",50,"blue"); var myMother = person("Sally", "Rally", 48, "green"); console.log(myFather) console.log(typeof myFather) console.log(myMother) console.log(typeof myMother) console.log("----------") myFather.dd = ()=>{ console.log("ddddddd") } myFather.name = "new name" person.prototype.ff = function() { return console.log("fffff"); } console.log(myFather.name) myFather.dd() //myFather2.dd()//报错 myFather.ff() //myMother.ff()//报错