美文网首页
面向对象/自定义构造函数创建对象

面向对象/自定义构造函数创建对象

作者: 曾基锟 | 来源:发表于2017-03-19 20:48 被阅读0次

    自定义构造函数创建对象

    基本写法

    function 构造函数名(参数1,参数2,参数3...) {

    //设置对象的属性

    this.属性01 = 参数1;

    this.属性02 = 参数2;

    //设置对象的方法

    this.方法01 = function () {

    //.....

    };

    this.方法02 = function () {

    //.....

    }

    }

    //自定义构造函数方式创建对象

    var 对象01 = new 构造函数名(实参01,实参02,实参03...);

    var 对象02 = new 构造函数名(实参01,实参02,实参03...);

    代码示例

    function CreateBook (name,price,author,press) {

    this.name = name;

    this.price = price;

    this.author = author;

    this.press = press;

    this.read = function () {

    console.log("我的书名为:"+this.name+",作者为"+this.author+"....");

    };

    }

    var b1 = new CreateBook("声名狼藉者的的生活","42.00","福柯","北京大学出版社");

    var b2 = new CreateBook("人性的枷锁","49.00","毛姆","华东师范大学出版社");

    var b3 = new CreateBook("悟空传","28.00","今何在","湖南文艺出版社");

    //打印对象的属性,并调用对象的方法测试

    console.log(b1.author);

    console.log(b2.author);

    console.log(b3.author);

    b1.read();

    b2.read();

    b3.read();

    构造函数与new关键字

    构造函数和普通函数的区别:函数的首字母大写

    构造函数的作用:用于完成对象的初始化

    new关键字的作用:用于创建对象(Object类型)

    自定义构造函数和简单工厂函数的对比

    ① 函数的首字母大写(用于区别构造函数和普通函数)

    ② 创建对象的过程是由new关键字实现

    ③ 在构造函数内部会自动的创建新对象,并赋值给this指针

    ④ 自动返回创建出来的对象

    构造函数的执行过程

    ① 使用new关键字创建对象

    ② 把新创建出来的对象赋值给this

    ③ 在构造函数内部,使用this为新创建出来的对象设置属性和方法

    ④ 默认返回新创建的对象(普通函数如果不显示的return则默认返回undefined)。

    构造函数的返回值

    01 如果在构造函数中没有显示的return,则默认返回的是新创建出来的对象

    02 如果在构造函数中显示的return,则依照具体的情况处理

    [01] return 的是对象,则直接返回该对象,取而代之本该默认返回的新对象

    [02] return 的是null或基本数据类型值,则返回新创建的对象

    构造函数方式创建对象存在的问题

    每次创建对象,都会重新创建函数,那么如果创建的对象数量很多,而对象方法内部的实现一模一样,则造成了资源浪费

    相关文章

      网友评论

          本文标题:面向对象/自定义构造函数创建对象

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