从继承父作用域的字符串创建函数

ant*_*r15 5 javascript scope function

在Javascript中,有没有办法从字符串创建函数(例如通过新的Function()构造函数)并让它继承父作用域?例如:

(function(){
    function yay(){
    }
    var blah = "super yay"
    yay.prototype.testy = new Function("alert(blah)")
    yay.prototype.hello = function(){alert(blah)}
    whee = new yay();
    whee.hello()
    whee.testy()
})()
Run Code Online (Sandbox Code Playgroud)

有没有办法让whee.testy()也警告"超级yay"?

ant*_*r15 1

(function(){
    function yay(){
    }
    var blah = "super yay"
    yay.prototype.testy = eval("(function(){alert(blah)})")//new Function("alert(blah)")
    yay.prototype.hello = function(){alert(blah)}
    whee = new yay();
    whee.hello()
    whee.testy()
})()
Run Code Online (Sandbox Code Playgroud)

这似乎对我有用,并且评估的数据都不是来自任何不受信任的来源。它只是用于缩小代码。