美文网首页
面向对象小问答

面向对象小问答

作者: MGd | 来源:发表于2017-03-28 19:20 被阅读11次
    • 1.面向对象的三大特性是什么,请分别说明?
      • 01 封装:
        使用对象来封装函数和变量,对外提供对应的接口。
        提供提高代码的复用性,降低代码的冗余度。
        信息隐藏,把方法内部的实现隐藏起来,我们不需要关心内部的实现细节。
    • 02 继承:
      某个对象(子对象)获得另外一个对象(父对象)的属性和方法的行为。
    • 03 多态:
      对于相同的操作(指令),不同的对象表现出不同的行为。
    • 2.为什么要使用面向对象编程,有哪些优点?
    • 在更多的时候会更方便,复用性更高。
    • 3.构造函数和原型对象的关系是什么?
    • 01 构造函数默认有一个相互关联(prototype<->constructor)的对象,这个对象是原型对象。
    • 02 原型对象本身是一个对象(Object),只有一个属性。
    • 4.说明自定义构造函数创建对象的执行过程?
    1 提供一个构造函数
        function Person() {
    //var o = new Object();
    //this = o;
    // o.__proto__ = Person.prototype;
    //o.__proto__.constructor  = Person;
    2 在函数内部通过this设置属性和方法
            this.name = "张三";
            this.showName = function () {
                console.log(this.name);
            }
    //return o;
        }
    3 通过new 函数()创建对象
        var p1 = new Person();
    
    • 1 提供构造函数
    • 2 通过this来设置属性和方法
      1 创建空的对象var o = {}
      2 把空对象赋值给this
      3 设置原型对象 o.__proto__ = Person.Prototype
      4 设置原型对象的构造器属性o.__proto__.constructor = Person添加实例属性
      5 使用this来设置成员
      6 把对象返回
      如果显示return: 值类型(默认创建的对象) + 引用类型(对象会被覆盖)
    • 3 使用new来调用构造函数
    • 5.面向对象和面向过程编程有什么区别?
    • 面向过程编程关注解决问题的具体步骤。
    • 面向对象编程关注解决问题需要的对象。
    • 6.构造函数的原型对象的作用是什么?
    • 原型对象的成员会被构造函数创建出来的所有对象共享。
    • 7.如何获取构造函数的原型对象[3]?
    构造函数.prototype
    对象.__proto__
    Object.getPrototypeOf(对象)
    
    • 8.说明实例和实例化
    • 实例化:构造函数创建对象的过程
    • 实例:构造函数创建出来的对象,这个对象被称为该构造函数的一个实例。
    • 9. 请画出下面代码的结构关系图(包含proto和constructor)
     function Book (name,price,author,press) {
            this.name = name;
            this.price = price;
            this.author = author;
            this.press = press;
        }
    
        Book.prototype.typeName = "书籍";
        Book.prototype.sellAddress = ["新华书店","京东商城","卓越亚马逊"];
        Book.prototype.read = function () {
            console.log("我的书名为:"+this.name+",作者为"+this.author+"....");
        };
    
        var b1 = new Book("声名狼藉者的的生活","42.00","福柯","北京大学出版社");
        var b2 = new Book("人性的枷锁","49.00","毛姆","华东师范大学出版社");
    

    相关文章

      网友评论

          本文标题:面向对象小问答

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