![]() |
1
128
如果希望函数根据传递给它的参数的数量和类型而表现出不同的行为,则必须手动嗅探它们。JavaScript很乐意调用参数个数大于或小于声明个数的函数。
您还可以访问
如果需要更复杂的参数,最好将部分或全部参数放入对象查找中:
Python演示了如何使用默认参数和命名参数,以比函数重载更实用、更优雅的方式覆盖大多数用例。JavaScript,没那么多。 |
![]() |
2
46
使用此模式可以创建多个构造函数 |
![]() |
3
34
|
![]() |
4
13
我不想像bobince的回答那样手工操作,所以我完全取消了jQuery的插件选项模式。 以下是构造器:
以下是不同的实例化方法:
|
![]() |
5
10
更进一步的回答,你可以把你的
|
![]() |
6
7
你可以用 Destructuring objects as constructor parameters in ES6 模式如下:
如果你想支持“无参数”构造函数,你可以这样做。
|
![]() |
7
3
有时,参数的默认值对于多个构造函数就足够了。当这还不够的时候,我会尝试将大多数构造函数功能包装到一个init(otherparams)函数中,然后调用该函数。还可以考虑使用工厂概念来创建一个可以有效地创建所需其他对象的对象。 http://en.wikipedia.org/w/index.php?title=Factory_method_pattern&oldid=363482142#Javascript |
![]() |
8
2
用途:
|
![]() |
9
0
这是中多个构造函数的示例 Programming in HTML5 with JavaScript and CSS3 - Exam Ref .
|
![]() |
10
0
我相信有两个答案。一个使用带有IIFE函数的纯Javascript来隐藏其辅助构造函数。另一种是使用NodeJS模块来隐藏其辅助构造功能。 我将只展示带有NodeJS模块的示例。 类Vector2d.js:
useVector2d.js文件使用Vector2d.js模块:
终端输出:
这样我们就避免了脏代码(许多if和switch分布在整个代码中),难以维护和测试。每个建筑功能都知道要测试哪些条件。增加和/或减少建筑功能现在很简单。 |