本文介绍了基于通过的参数重写Javascript函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以根据传入的参数数量覆盖函数?例如:

 函数abc(name){
document.write('My name is'+ name);
}

函数abc(name,friend){
document.write('我的名字是'+ name +',我最好的朋友''的名字是'+朋友);





$ b因此在HTML中,如果我只是调用abc(george),它会使用第一个版本的函数,但如果我调用abc(george,john),它会使用第二个版本。



可能有其他方法可以完成我使用的示例,但我只是想知道在JavaScript中这个概念是否合理。

解决方案

JavaScript不支持函数重载。



然而,您可以:

  if(typeof friend ===undefined ){
//做某事
}其他$ {
//做别的事
}


Is it possible to override a function based on the number of parameters that you are passing into it? For instance:

function abc(name) {
    document.write ('My name is' + name);
}

function abc(name,friend) {
    document.write ('My name is' + name + 'and my best friend\'s name is' + friend);
}

So in the HTML if I just called abc(george) it would use the first version of the function, but if I called abc(george,john) it would use the second version.

There may be other ways to accomplish the example I used, but I'm just wondering if the concept is sound in javascript.

解决方案

JavaScript does not support function overloading.

You can, however:

if (typeof friend === "undefined") {
    // do something
} else {
    // do something else
}

这篇关于基于通过的参数重写Javascript函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 04:07