gpt4 book ai didi

javascript - 错误: JavaScript Function Add to class dynamically

转载 作者:行者123 更新时间:2023-11-28 12:32:21 25 4
gpt4 key购买 nike

我是网络开发新手。今天我学习了 JavaScript 中的类(函数)。我在如何调用动态添加的方法时遇到错误。

我的代码:

<head runat="server">
<title></title>
<script type="text/javascript" language="javascript">


function MyMethod(name, fn) {
var str = "MyFunction1.prototype." + name + "= fn;";
eval(str);
}

function MyFunction1() {

MyMethod("start", function () { return "hi"; });

var abc = this.start(); //gives error


}

</script>
</head>
<body>
<form id="form1" runat="server" >
<div>
<input type="button" value="Click" onclick="MyFunction1()"/>

</div>
</form>
</body>

这里当我点击输入按钮时无法调用动态添加的函数如何调用我在此处添加的 start() 函数。

请帮助我。

最佳答案

thisMyFunction1在这种情况下引用 global 对象(对于浏览器来说是 window ),因为您调用 MyFunction1作为函数,并且您不使用 new MyFunction1() 创建对象.

还有一点需要注意。您不应该使用eval当无需评估就可以做到这一点时。

您可以使用以下方法执行相同的操作:

function MyMethod(name, fn) {
MyFunction1.prototype[name] = fn;
}

使用eval阻止您使用优化工具或验证代码的工具。至少这些工具中的大多数都不需要 eval考虑甚至警告您正在使用它。

关于javascript - 错误: JavaScript Function Add to class dynamically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20799008/

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