js中继承的封装

        function createClass(jsonObj) {
            //任意类为F
            function F() {

            }

            for (var name in jsonObj) {
                F.prototype[name] = jsonObj[name];
            }

            return F;
        }

        var Person = createClass({
            getName: function () {
                alert("name");
            },
            getId: function () {
                alert('Id');
            }
        });

        //var p = new Person();
        //p.getName();
        //p.getId();

        /*
        当该函数有一个参数的情况下,创建一个新类
        当该函数有两个参数的情况下,第一个参数是基类,第二个参数就是在这个基类上添加内容。
        */
        function extend(obj,prop) {
            function F() { }
            if (typeof obj == "object") {
                for (var name in obj) {
                    F.prototype[name] = obj[name];
                }
            } else {
                F.prototype = obj.prototype;
                for(var name in prop){
                    F.prototype[name] = prop[name];
                }
            }

            return F;
        }

        var Person = extend(
            {
                name: "king of north",
                id:6
            }
            );

        var SuperPerson = extend(Person, { sex: "male" });

        var sp = new SuperPerson();

        alert(sp.name);
        alert(sp.id);
        alert(sp.sex);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值