在同一页面内具有相同名称的两个函数

时间:2014-05-17 16:53:12

标签: javascript function

我想询问javascript中是否可以在同一页面中插入两个具有相同名称的函数。

例如,我已经创建了一个任何人都可以在他们的网站上使用的脚本,这个脚本只包含:

function sayHello(){
 alert("Hello World")
}

现在让我们说同一个用户想要添加另一个脚本,但是更改警报信息,所以最后它会是这样的:

function sayHello(){
 alert("Hello World");
}

function sayHello(){
 alert("How are you?");
}

脚本只返回"你好吗"。

那么,还有另一种方法可以使javascript执行两个具有相同名称的函数吗? 如果没有,是否可以通过不要求最终用户手动更改功能名称的方式来修复它?

1 个答案:

答案 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();
}