gpt4 book ai didi

javascript - 替换新函数内的arguments.callee

转载 作者:行者123 更新时间:2023-11-28 06:05:46 24 4
gpt4 key购买 nike

某些字符串通过 new Function(...) 调用转换为函数。

如何在不使用 arguments.callee 的情况下在字符串内引用此函数?

var f = new Function('return arguments.callee.smth');
f.smth = 128;
f(); // 128

最佳答案

做到这一点的唯一方法是使用闭包。

例如:

var f = (function () {
var f = new Function('return this().smth').bind(function () { return f });
return f;
})();

f.smth = 128;
f();

或者这样:

var f = (function (g) {
return function f() {
return g.apply(f, arguments)
};
})(new Function('return this.smth'));

f.smth = 128;
f();

无论如何,无论严格模式如何,似乎arguments.callee都可以在构造函数内工作。

有关该主题的其他链接:

关于javascript - 替换新函数内的arguments.callee,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36870956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com