美文网首页
面向对象测试题

面向对象测试题

作者: _William_Zhang | 来源:发表于2018-09-28 14:20 被阅读7次
    • 要求不使用 class,完成如下需求:

    写出一个构造函数 Animal
    输入为空
    输出为一个新对象,该对象的共有属性为 {行动: function(){}},没有自有属性
    再写出一个构造函数 Human
    Human 继承 Animal
    输入为一个对象,如 {name: 'Frank', birthday: '2000-10-10'}
    输出为一个新对象,该对象自有的属性有 name 和 birthday,共有的属性有物种(人类)、行动和使用工具
    在写出一个构造函数 Asian
    Asian 继承 Human
    输入为一个对象,如 {city: '北京', name: 'Frank', birthday: '2000-10-10' }
    输出为一个新对象,改对象自有的属性有 name city 和 bitrhday,共有的属性有物种、行动和使用工具和肤色
    既
    
    最后一个新对象是 Asian 构造出来的
    Asian 继承 Human,Human 继承 Animal
    

    答案:

    function Animal() {
    
    }
    Animal.prototype.行动 = function () { }
    var animal = new Animal()
    
    function Human(options) {
        this.name = options.name
        this.birthday = options.birthday
    }
    Human.prototype = Object.create(Animal.prototype)
    Human.prototype.物种 = '人类'
    Human.prototype.使用工具 = function () { }
    var human = new Human({ name: 'frank', birthday: '2018-09-28' })
    
    
    function Asian(options) {
        Human.call(this, options)
        this.city = options.city
    }
    Asian.prototype = Object.create(Human.prototype)
    Asian.prototype.肤色 = '黄色'
    var asian = new Asian({ city: 'beijing', name: 'frank', birthday: '2018-09-28' })
    
    console.dir(animal)
    console.dir(human)
    console.dir(asian)
    
    • 要求使用 class,完成如下需求:

    写出一个构造函数 Animal
    输入为空
    输出为一个新对象,该对象的共有属性为 {行动: function(){}},没有自有属性
    再写出一个构造函数 Human
    Human 继承 Animal
    输入为一个对象,如 {name: 'Frank', birthday: '2000-10-10'}
    输出为一个新对象,该对象自有的属性有 name、物种和 birthday,共有的属性有行动和使用工具 (由于 class 的语法问题,所以物种只能勉为其难作为一个自有属性,本来应该是共有属性的)
    再写出一个构造函数 Asian
    Asian 继承 Human
    输入为一个对象,如 {city: '北京', name: 'Frank', birthday: '2000-10-10' }
    输出为一个新对象,改对象自有的属性有 name city 物种 肤色和 bitrhday,共有的属性有行动和使用工具
    既
    
    最后一个新对象是 Asian 构造出来的
    Asian 继承 Human,Human 继承 Animal
    注意,要使用 class 关键字
    

    答案:

    class Animal {
        行动() { }
    }
    
    class Human extends Animal {
        constructor(options) {
            super(options)
            this.name = options.name
            this.birthday = options.birthday
            this.物种 = '人类'
        }
        使用工具() { }
    }
    
    class Asian extends Human {
        constructor(options) {
            super(options)
            this.city = options.city
            this.肤色 = options.肤色
        }
    }
    
    console.dir(Animal)
    console.dir(Human)
    console.dir(Asian)
    

    相关文章

      网友评论

          本文标题:面向对象测试题

          本文链接:https://www.haomeiwen.com/subject/rifpoftx.html