• javascript 数组 prototype疑问


    今天在编码时,遇到一个问题,特记录下。

    var test=(function() { var arr2=[1,2,3,3]; return function(){ return arr2; }; })() 
    Array.prototype.f1= function () { return []; } 
    Array.prototype.f2= function () { this.length=0; return this; }   
    然后用两种方式调用:
    一:
    var arr= test();
    console.log(arr.length);结果是4
    arr.f1();
    arr= test();
    console.log(arr.length);结果是4
    这个好理解;

    二:
    var arr= test();
    console.log(arr.length);结果是4
    arr.f2();
    arr= test();
    console.log(arr.length);结果是0
    不知道为什么会这样,难道arr.f2()可以修改test函数中闭包中的arr2;
  • 相关阅读:
    复变函数
    abc136
    点集
    一些数学题
    牛客多校第六场
    牛客多校第五场G
    复数
    generator 1
    digits 2
    Winner
  • 原文地址:https://www.cnblogs.com/oneroom/p/closuretest.html
Copyright © 2020-2023  润新知