<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> //构造函数,用来区分创建的对象,首字母大写,如Person,Animal //1.构造函数 function Person(){ this.name; } //2.创建新对象(实例化) var zs=new Person(); zs.name="张三"; //3.返回值返回 console.log(zs.name); //.带参,方便对多个对象赋值 function Person(name,age){ this.name=name; this.age=age; // this.sayName=function (){//① // alert(this.name); // // } } //.原型对象 _proto_把①放到函数外面来,效率会变高,对象的共有属性放到原型中,方便调用 Person.prototype.sayName=function(){ //不会影响到全局作用域,避免与全局作用域有 alert(this.name); //同名时候的冲突 } var zs=new Person("张三",19); zs.sayName();console.log(zs); var ls=new Person("李四",20); ls.sayName();console.log(ls); //.区别in的属性检查,不包括原型对象中的函数的检查 console.log(Person.hasOwnProperty("name")); //.对两个隐含存参数的理解 // 形参 :this, // 实参:argumes,是个类数组,包含数组属性,arguments.length来获取实参长度 </script> </body> </html>