如何写一个方法替代with和eval的功能

 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()'等等进行计算

largeQ
浏览 321回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript