zoukankan      html  css  js  c++  java
  • 面试题-javascript-面向对象编程

    笔者在某次笔试中遇到这个题:印象很深。

      function ClassA() {
            var value=4;
    
            this.getValue= function()
            {
                return value;
            }
    
            this.setValue= function(value)
            {
                this.value=value;
    
            }
    
        }
    
      var classa = new ClassA();
            document.write(classa.getValue());
            classa.setValue(1);
            document.write(classa.getValue());
            document.write(classa.value);

    写出输出结果

    开始以为是411

    回来运行发现是441

    原因:
    ClassA.value 其实就是ClassA.prototype.value,同时this.value 也是这个变量。
    那么getValue输出value(4),setValue把this.value改成(1,原本应该是0),然后第二个getValue输出value(4),classa.value 就是1了。

  • 相关阅读:
    My SQL
    弹窗
    DBDA
    ThinkPHP验证码与文件上传
    ThinkPHP表单验证
    ThinkPHP增删改
    ThinkPHP模型(查询)
    ThinkPHP跨控制器调用方法
    Superset安装
    Presto资源组配置
  • 原文地址:https://www.cnblogs.com/slankka/p/9158559.html
Copyright © 2011-2022 走看看