十三、JavaScript面向对象(下) - 章节课后练习题及答案

第一章链接:初识JavaScript - 章节课后练习题及答案

第二章链接:JavaScript 基础(上) - 章节课后练习题及答案 

第三章链接:JavaScript 基础(下) - 章节课后练习题及答案

第四章链接:JavaScript 函数 - 章节课后练习题及答案

第五章链接:JavaScript 对象 - 章节课后练习题及答案

第六章链接:DOM(上) - 章节课后练习题及答案

第七章链接:DOM(下) - 章节课后练习题及答案

第八章链接:BOM - 章节课后练习题及答案 

第九章链接:JavaScript网页特效 - 章节课后练习题及答案

第十章链接:jQuery(上) - 章节课后练习题及答案 

第十一章链接:jQuery(下) - 章节课后练习题及答案

第十二章链接:JavaScript面向对象(上) - 章节课后练习题及答案 

注:使用的是人民邮电出版社出版的《JavaScript+jQuery 交互式 Web 前端开发》书籍。


一、填空题

       1、在原型对象里面有一个______属性,该属性指向了构造函数。

        2、直接通过函数名调用函数时,this指向的是______。

        3、利用JavaScript提供的两种方式可手动控制this的指向,它们分别是______和______。

        4、______方法的含义是绑定,用于在调用函数前指定this的含义,实现提前绑定的效果。

        5、除了在JavaScript程序出现错误时自动抛出错误对象,用户也可以使用______关键字手动抛出错误对象。

        6、在错误处理中_____表示调用eval()函数错误。

二、判断题

        1、构造函数主要用来创建对象,并为对象的成员赋初始值。(  )

        2、在JavaScript中,每个对象都有一个__proto__属性,这个属性指向了对象的原型对象。(  )

        3、bind()方法的含义是绑定,用于在调用函数前指定this的含义,实现提前绑定的效果。(  )

        4、每个构造函数都有一个prototype属性指向原型对象,原型对象通过constructor属性指向构造函数。(  )

三、选择题

        1、下列选项中,描述错误的是(  )。

                A. __proto__是一个标准的属性

                B. 每个对象都有一个__proto__属性

                C. 通过实例对象的constructor属性就可以访问实例对象的构造函数

                D. 原型对象也是对象

        2、下面选项中,不能用来改变this指向的是(  )。

                A. apply()        B. call()        C. method()         D. bind()

        3、下面选项中,描述错误的是(  )。

                A. 使用构造方法创建对象虽然很简单、方便,但是与类存在一定的区别

                B. 在静态方法中不能使用this访问实例对象,因为静态方法与实例对象有关联

                C. 在面向对象中有静态成员和实例成员的概念,实例成员是指实例对象的成员

                D. 在JavaScript中,每个构造函数都有一个原型对象存在

        4、Object的原型对象的__proto__属性为(  )。

                A. null        B. undefined        C. NaN        D. String

        5、关于对象继承,下列描述错误的是(  )。

                A.在ES 6中,继承是通过定义两个类,然后子类用extends关键字继承父类实现的

                B.ES 6提供了class语法用来定义类

                C.类和构造函数的使用非常相似,不可以互相替代

                D.若要实现子类继承父类的方法,不能直接将父类原型对象赋值给子类原型对象

四、简答题

        1、请简单介绍什么是原型对象。

        2、请解释说明如何使用bind()和call()。

五、编程题

        利用构造函数编写一个计算器模块,提供加、减、乘、除运算方法。


参考答案

一、填空题

        1、constructor

        2、全局对象window

        3、apply()方法和call()方法

        4、bind()

        5、throw

        6、EvalError

二、判断题

        1、对        2、对      3、对        4、对

三、选择题

        1、A         2、C       3、B        4、C        5、C

四、简答题

        1、请简单介绍什么是原型对象。

         在JavaScript中,每个构造函数都有一个原型对象存在,这个原型对象通过构造函数的prototype属性来访问,如果不知道对象的构造函数,则可以用__proto__属性直接访问原型对象;如果知道了一个对象的构造函数,可以用构造函数的prototype属性访问原型对象; 

        2、请解释说明如何使用bind()和call()。

        call()方法可以更改函数内的this指向,它的第1个参数用来传入一个对象,它的第2个参数表示调用函数时传入的参数,call()使用第2~N个参数来表示调用函数时传入的函数。

        bind()方法的含义是绑定,与call()用法基本类似,不同的是,bind()方法用于在调用函数前指定this的含义,实现提前绑定的效果,bind()方法在绑定时,还可以提前传入调用函数时的参数。

五、编程题

<body>
  <!-- 计算器页面结构 -->
  <input type="text" id="num1">
  <!-- 定义“+、-、*、/”符号 -->
  <select name="" id="fuhao">
    <option value="1" onclick="">+</option>
    <option value="2" onclick="">-</option>
    <option value="3" onclick="">*</option>
    <option value="4" onclick="">/</option>
  </select>
  <input type="text" id="num2">
  <!-- 定义“=”符号 -->
  <input type="button" id="result" value="=">
  <!-- 计算结果展示 -->
  <input type="text" id="showNum">


  <script>
    function Calc(showNum, result) {
      this.showNum = showNum;
      this.result = result;
      // 默认计算结果为空
      document.getElementById(this.showNum).value = ''
      document.getElementById(this.result).onclick = function () {
        // 获取数字num1、num2和计算符号
        var fuhao = document.getElementById('fuhao').value;
        var num1 = document.getElementById('num1').value;
        var num2 = document.getElementById('num2').value;
        if (fuhao == "1") {
          document.getElementById('showNum').value = parseInt(num1) + parseInt(num2)
        }
        if (fuhao == "2") {
          document.getElementById('showNum').value = parseInt(num1) - parseInt(num2)
        }
        if (fuhao == "3") {
          document.getElementById('showNum').value = parseInt(num1) * parseInt(num2)
        }
        if (fuhao == "4") {
          document.getElementById('showNum').value = parseInt(num1) / parseInt(num2)
        }
      }
    }
    // 初始化计算器
    var calc = new Calc('showNum', 'result')
  </script>

</body>
  • 2
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小泽的熊先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值