• JS:构造函数的返回值


     构造函数返回的知识点

    1、在构造函数里面,如果不写return的话默认就是返回创建的实例对象。

    2、在构造函数里面,如果写了return的话

      1)如果return的是一个基本数据类型的话比如,boolean,number,undefined等那么仍然返回实例对象;

       2)如果return的是一个对象的话,则返回该对象。原本的指向实例对象的this会被无效化。

     情况一:return false  (return基本数据类型,仍然返回实例化对象)

    1. // 情况一:return false (return基本数据类型,仍然返回实例化对象)
    2. const test = {
    3. rules: false
    4. };
    5. function Build() {
    6. this.rules = true;
    7. return false
    8. }
    9. const build = new Build();
    10. console.log(build);
    11. console.log(build.rules);

     情况二:return this.rules   (return基本数据类型,仍然返回实例化对象)

    1. // 情况二:return this.rules (return基本数据类型,仍然返回实例化对象)
    2. const test = {
    3. rules: false
    4. };
    5. function Build() {
    6. this.rules = true;
    7. return this.rules
    8. }
    9. const build = new Build();
    10. console.log(build);
    11. console.log(build.rules);

     

     情况三:return test    (return对象test,返回对象test)

    1. // 情况三:return test (return对象test,返回对象test)
    2. const test = {
    3. rules: false
    4. };
    5. function Build() {
    6. this.rules = true;
    7. return test
    8. }
    9. const build = new Build();
    10. console.log(build);
    11. console.log(build.rules);

     

    情况四:什么都不做 (不写return,默认返回创建的实例对象。) 

    1. const test = {
    2. rules: false
    3. };
    4. function Build() {
    5. this.rules = true;
    6. }
    7. const build = new Build();
    8. console.log(build);
    9. console.log(build.rules);

     


    总结

    在构造函数里面,如果不写return的话默认就是返回创建的实例对象,

    但是如果加入了return的话,如果return的是一个基本数据类型的话比如,boolean,number,undefined等那么仍然返回实例对象,如果返回的是一个对象的话,则返回该对象,原本的指向实际对象的this会被无效化


    文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会一一回复

    文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力     长路漫漫,道阻且长  

  • 相关阅读:
    windows/linux命令行操作快捷方式
    虚拟机扩容
    【Java网络编程】二
    OPT锂电池极耳缺陷检测方案
    计算光刻软件市场报告:半导体和微电子行业对于光刻技术的需求不断增长,推动了计算光刻软件的发展
    prompt
    23【状态设计模式】
    【Vue3教程】创建你的第一个Vue 3项目
    LeetCode 204. 计数质数
    论文发表需要的重复率是多少?
  • 原文地址:https://blog.csdn.net/qq_52855464/article/details/125626642