JavaScript的伪多态语法
时间: 2023-08-04 12:36:00 浏览: 56
在 JavaScript 中,函数的伪多态可以通过 arguments 对象和函数重载来实现。arguments 对象是一个类数组对象,包含了函数调用时传入的所有实参,可以通过 arguments.length 和 arguments[i] 来获取实参的个数和值。
函数重载可以通过 if、switch 或者动态添加属性的方式来实现。例如:
```
function add() {
if (arguments.length === 2) {
return arguments[0] + arguments[1];
} else if (arguments.length === 3) {
return arguments[0] + arguments[1] + arguments[2];
} else {
throw new Error('Invalid arguments');
}
}
console.log(add(1, 2)); // 3
console.log(add(1, 2, 3)); // 6
```
上述代码中,add 函数根据传入的实参个数来决定执行哪个分支。如果传入的实参个数不是 2 或者 3,就会抛出异常。
除了上述方式,还可以通过为函数添加属性的方式来实现函数重载。例如:
```
function add(a, b) {
return a + b;
}
add.threeArgs = function(a, b, c) {
return a + b + c;
};
console.log(add(1, 2)); // 3
console.log(add.threeArgs(1, 2, 3)); // 6
```
上述代码中,通过给 add 函数添加一个 threeArgs 属性,可以实现接受三个实参的函数重载。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)