JavaScript使用原型方式创建对象所带来的问题

来源:互联网 发布:win7旗舰版优化图教程 编辑:程序博客网 时间:2024/05/02 00:47
<script>    /**     * 基于原型的创建虽然可以有效的完成封装,但是依然有一些问题     * 1、无法通过构造函数来设置属性值     * 2、当属性中有引用类型变量时,可能存在变量值重复     */    function Person() {};    Person.prototype = {        constructor:Person,        name:"Jack",        age:30,        friends:["Ada", "Linda"],        say:function(){            alert(this.name + "[" + this.friends + "]");        }    }    var p1 = new Person();    p1.name = "john";    p1.say();    // 会在原型中招friends,所以Mike是在原型中增加的    p1.friends.push("Mike"); // 为p1增加了一个朋友    // 此时原型中就多了一个Mike,这就是原型带来的问题    var p2 = new Person();    p2.say();</script>

0 0