素材牛VIP会员
如何写一个方法替代with和eval的功能
 非***星  分类:Node.js  人气:912  回帖:1  发布于6年前 收藏
 function Foo () {
      }

      Foo.prototype = {
        m1: function () {
          console.log('m1');
        },
        m2: function () {
          console.log('m2');
        },
        $eval: function (exp) {
          var val;
          with (this) {
            val = eval(exp);
          }
          return val;
        }
      };

      var scope = new Foo();
      scope.value = 'world!';
      scope.$eval('m1()');
      console.log(scope.$eval('"hello " + value'));
      console.log(scope.$eval('"hello!"'));
      

不用with和eval,如何实现一个Foo对象,可以对'"hello " + value','m1()'等等进行计算

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv5 码农
错***7 Linux系统工程师 6年前#1

new Function('var value = 1; return "hello"+value')()

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取