loading...

1

4.对象冒充 组合继承

javascript读完大概需要3分钟

  • 发布时间:2017-07-26 15:34 星期三
  • 刘伟波
  • 689
  • 更新于2017-07-26 15:34 星期三

对象冒充 组合继承

对象冒充存在的问题,不能使用原型,所以就不能不能实现数据共享

    <script>
        function Test(age) {
            this.family=["妈妈","爸爸"];
            this.age=age;
            this.fun=function () {
                return this.age+this.family;
            }
        }
        function Until(age) {
            Test.call(this,age)
        }
        var u1=new Until(23);
        console.log(u1.fun());
        var u2=new Until(24);
        console.log(u2.fun());
        console.log(u1.fun==u2.fun);//false



        //对象冒充存在的问题
        //不能使用原型,所有就不能不能实现数据共享
        function Test(age) {
            this.family=["妈妈","爸爸"];
            this.age=age;
        }
        Test.prototype.fun=function () {
            return this.age+this.family;
        };
        function Until(age) {
            Test.call(this,age)
        }
        var u1=new Until(23);
        console.log(u1.fun());
        var u2=new Until(24);
        console.log(u2.fun());
        console.log(u1.fun==u2.fun);//false



        //组合继承(原型加对象冒充)
        function Test(age) {
            this.family=["妈妈","爸爸"];
            this.age=age;
        }
        Test.prototype.fun=function () {
            return this.age+this.family;
        };
        function Until(age) {
            Test.call(this,age);//对象冒充
        }
        Until.prototype=new Test();//原型链
        var u1=new Until(23);
        u1.family.push("姐姐");
        console.log(u1.fun());
        var u2=new Until(24);
        console.log(u2.fun());
        console.log(u1.fun==u2.fun);//true
    </script>


你可能感兴趣的文章

    发表评论

    评论支持markdown,评论内容不能超过500字符
    关于技术问题或者有啥不懂的都可以来 我的视频空间 提问, 推荐作者总结知识点 前端知识体系, 感謝支持!