• 构造函数练习


    function Parent() {

                    this.a = 1; 

                    this.b = [1, 2, this.a]; 

                    this.c = {

                        demo: 5

                    };

                    this.show = function() {

                        console.log(this.a, this.b, this.c.demo);

                    }

                    this.change = function() {

                                            this.a = this.b.length;

                                            this.c.demo = this.a++;

                                        }       

                }

                var parent = new Parent();//

                // var parent={a:4,b:[1,2,1],c:{demo:3},show:func,change:func}

                            

                parent.change();//

                            

                parent.show();//4 [1,2,1]  3

    本题难点在哪?

    首先是a 为什么等于4

    在我们调用change()函数之后this.a = this.b.length;a的值已经等于b数组的长度了就是3

     this.c.demo = this.a++; a++ 先取值 就取到3 然后a在自增变成4 但是b这个数组为什么不变呢

    因为this.b = [1, 2, this.a]; 这个数组 this.a在最开始代码运行的时候已经固定了是1 this.a不是一个引用数据 他不会变化 除非后面有代码去更新了b的值

  • 相关阅读:
    深度学习 常见的损失函数
    16 一元线性回归
    【机器学习Python实战】线性回归
    [C语言、C++]数据结构作业:用双向链表实现折返约瑟夫问题
    drools执行完某个规则后终止别的规则执行
    网站SEO效果分析
    uni-app下载文件、获取文件夹下的文件、删除文件夹里的文件
    2.3 初探Hadoop世界
    UNIAPP 复选框 数据回显
    Spring系列一:Spring基础篇
  • 原文地址:https://blog.csdn.net/weixin_53596260/article/details/125490052