javascript练习题(五)

第6章 继承

1.使用原型继承模式(而不是属性拷贝的方式)实现多重继承。例如:

var my = objectMulti(obj,another_obj,a_third,{
    additional: "properties"
});

属性additional应该是私有属性,而其他属性则应该归并如prototype。

答:我也不是很清楚作者什么意思,我就想出这么一个挫方法,以后有了更好的方法再改吧。

    function objectMulit() {
   
        var n={};
        var parent;
        var np={};
        var i=0;
        var l=arguments.length;
        for(i=0;i<l-1;i++){
            parent=arguments[i];
            for(var j in parent){
                if(parent.hasOwnProperty([j])){
                    np[j]=parent[j];
                }
            }
        }
        n.prototype=np;
        for(var j in arguments[l-1]){
            if(arguments[l-1].hasOwnProperty([j])){
                n[j]=arguments[l-1][j];
            }
        }
        return n;
    }

    var obj={
        attr1: "attr1"
    };
    var another_obj={
        attr2: "arrt2"
    };
    var a_third={
        attr3: "attr3"
    };
    var my=objectMulit(obj,another_obj,a_third,{
        additional:"properties"
    });
    console.log(my);

ps:原书标准答案

function objectMulti() {
   
     var Constr,
     i,
     prop,
     mixme;
     // constructor that sets own properties
     var Constr = function (props) {
   
         for (var prop in props) {
             this[prop] = props[prop];
         }
     };
     // mix into the prototype
     for (var i = 0; i < arguments.length - 1; i++) {
        var mixme = arguments[i];
        for (var prop in mixme) {
             Constr.prototype[prop] = mixme[prop];
        }
     }
     return new Constr(arguments[arguments.length - 1]);
}

2.利用上面(书中前文,代码如下)的画布示例展开实践,

<!DOCTYPE html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,变量声明是非常重要的一部分。根据引用,变量声明需要遵守一些规则,比如变量名必须以英文字母、下划线(_)或美元符号($)开头,而后面可以包含字母、下划线(_)、美元符号($)和数字。变量名不能使用系统的关键字或保留字作为变量名。在JavaScript中,变量有不同的数据类型,包括Number、String、Boolean、undefined和null。如果声明了一个变量但未赋值,则它的值为undefined。 根据引用,练习题是一个很好的学习JavaScript变量的方式。通过练习,可以巩固对变量声明和赋值的理解,并提升编程能力。练习题可以包括不同的难度级别,从简单的变量声明到复杂的类型转换和条件语句。这样的练习题可以帮助新手更好地掌握JavaScript变量的概念和用法。 所以,JavaScript变量的练习题可以包括以下内容: - 变量声明和赋值 - 数据类型转换 - 条件语句和循环语句的应用 通过这些练习题,可以提高对JavaScript变量的理解和熟练度。希望这些练习对你的学习有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [(一)Javascript从变量至类型转化(含练习)](https://blog.csdn.net/weixin_51458883/article/details/114852562)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [JavaScript变量声明详解](https://download.csdn.net/download/weixin_38713450/13040420)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值