JavaScript对象 创建对象(二)

组合使用构造函数和原型模式创建对象

        function Person(name, age, job){
            this.name = name;
            this.age = age;
            this.job = job;
            this.friends = ["Shelby", "Court"];
        }
        
        Person.prototype = {
            constructor: Person,
            sayName : function () {
                alert(this.name);
            }
        };
        
        var person1 = new Person("Nicholas", 29, "Software Engineer");
        var person2 = new Person("Greg", 27, "Doctor");
        
        person1.friends.push("Van");
        
        alert(person1.friends);    //"Shelby,Court,Van"
        alert(person2.friends);    //"Shelby,Court"
        alert(person1.friends === person2.friends);  //false
        alert(person1.sayName === person2.sayName);  //true

实例属性在构造函数中定义,而由所有实例共享的属性constructor和sayName则是在原型中定义。

 

posted on 2014-08-08 10:15  YuanSong  阅读(142)  评论(0编辑  收藏  举报

导航