美文网首页
js-with带来的性能问题测试

js-with带来的性能问题测试

作者: 南方四季 | 来源:发表于2018-11-09 16:18 被阅读0次

    分别运行下面两段代码

    • 使用with的时候:test__time: 390.218ms
     const obj = { cunt: 122 };
      function test_with() {
        with (obj) {
          for (let i = 0; i < 1e6; i++) {
            cunt = 100;
            a = 0;
          }
        }
        console.log(a);
        console.log(obj.cunt);
      }
    console.time("test___start");
    test_with();
    console.timeEnd("test___start");//test___start: 390.218ms
    
    • 不用with的时候:test__time: 6.668ms
      const obj = { cunt: 122 };
    function test_with() {
      for (let i = 0; i < 1e6; i++) {
        obj.cunt = 100;
        a = 0;
      }
      console.log(a);
      console.log(obj.cunt);
    }
    console.time("test___start");
    test_with();
    console.timeEnd("test___start"); //test___start: 6.668ms
    

    对比耗时 明显with耗时更久,尽量不使用with

    with(object){
      statement;
    }
    
    • 总结一下:with会把object添加到作用域的头部,然后执行statement,与eval类似,with语句的javascript代码非常难于优化,同时也会给调试代码造成困难,并且同没有使用with语句的代码相比,它运算得更慢.

    相关文章

      网友评论

          本文标题:js-with带来的性能问题测试

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