js学习笔记49——构造函数修改
先放代码
<script>
function Person(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
this.sayName = function () {
alert(this.name);
};
}
var per = new Person("孙悟空",18,"男");
var per2 = new Person("猪八戒",28,"男");
per.sayName();
per2.sayName();
console.log(per.sayName==per2.sayName);
</script>
这里可以看到,每创建一个对象,都会重新创建一个新的sayName方法。这就有点浪费存储空间。如何做到共享呢?
把函数放到外面。
<script>
function Person(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
this.sayName =fun;
}
function fun() {
alert(this.name);
};
var per = new Person("孙悟空",18,"男");
var per2 = new Person("猪八戒",28,"男");
per.sayName();
per2.sayName();
console.log(per.sayName==per2.sayName);
</script>