<!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>
原文:https://www.cnblogs.com/wangdongwei/p/11245480.html