组合使用构造函数和原型

function Person(name, age, job) {
            this.name = name;
            this.age = age;
            this.job = job;
            this.friends = ['Jack', 'Lee'];
        }
        Person.prototype = {
            constructor: Person,
            sayName:function () {
                return this.name + this.age + this.job;
            }
        };
        var person1 = new Person('a', 100, 'student');
        var person2 = new Person('b', 200, 'teacher');
        //alert(person1.sayName());
        //alert(person2.sayName());//b200
        person1.friends.push('lalala');
        alert(person1.friends);//jack lee lalala
        alert(person2.friends);//jack lee
        alert(person1.sayName == person2.sayName);//true.sayName是原型中的,因为有共享
        alert(person1.friends == person2.friends);//false。因为实例属性是在构造函数中定义;修改了person1的friends并不会影响person2的friends。因为不具备共享

  

转载于:https://www.cnblogs.com/shenq/p/5458724.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值