我想询问javascript中是否可以在同一页面中插入两个具有相同名称的函数。
例如,我已经创建了一个任何人都可以在他们的网站上使用的脚本,这个脚本只包含:
function sayHello(){
alert("Hello World")
}
现在让我们说同一个用户想要添加另一个脚本,但是更改警报信息,所以最后它会是这样的:
function sayHello(){
alert("Hello World");
}
function sayHello(){
alert("How are you?");
}
脚本只返回"你好吗"。
那么,还有另一种方法可以使javascript执行两个具有相同名称的函数吗? 如果没有,是否可以通过不要求最终用户手动更改功能名称的方式来修复它?
答案 0 :(得分:2)
解决方法是将两个实体放在一起:
function sayHello(){
alert("Hello World");
alert("How are you?");
}
如果您需要以编程方式执行此操作,请使用数组。简单:
var messages = ["Hello World", "How are you?"];
function sayHello(){
for (var i=0; i<messages.length; i++)
alert(messages[i]);
}
复合物:
var functions = [
// function expressions even can use the same name (which is local)
// without overwriting each other
function sayHello(){
alert("Hello World");
},
function sayHello(){
alert("How are you?");
}
];
function sayHello(){
for (var i=0; i<functions.length; i++)
functions[i].call();
}