<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
/*
创建一个person构造函数
在person构造函数中,为每一个对象都添加了sayName方法
也就是构造函数每执行一次都会创建一个新的sayName方法
所有的的sayName都是唯一的,这样就导致了构造函数执行一次就会创建一个新的方法,
执行一万次就会创建一万个新的方法
这是完全没有必要的,完全可以使所有的对象共享同一个方法
*/
function Person(name,age,gender){
this.name=name;
this.age=age;
this.gender=gender;
//向对象中添加一个方法
this.sayName=function(){
console.log("hello,下午好"+this.name);
};
}
//方法二:将sayName方法在全局作用域中定义
function fun(){
console.log("hello大家好,我是:"+this.name);
};
fun();
/*
将函数定义在全局作用域中,污染了全局作用域命名的空间,
而且定义在全局作用域中也很不安全
*/
//创建一个person的实例
var per=new Person("孙悟空",18,"男");
var per3=new Person("猪",17,"女");
var per4=new Person("悟空",19,"女");
per.sayName();
per3.sayName();
per4.sayName();
</script>
</head>
<body>
</body>
</html>