lom*_*axx 22 javascript oop dynamic-languages interface
我想这可以适用于任何动态语言,但我使用的是JavaScript.我们有一种情况,我们在JavaScript中编写了一些需要公开Send()函数的控件,然后由承载JavaScript的页面调用该函数.我们有一个定义了此Send函数的对象数组,因此我们遍历集合并在每个对象上调用Send().
在OO语言中,如果你想做类似的事情,你会有一个IControl接口,它有一个必须由每个控件实现的Send()函数,然后你有一个你要迭代的IControl实现的集合通过并调用send方法.
我的问题是,JavaScript是一种动态语言,是否需要定义控件应该继承的接口,还是只需要调用控件上公开的Send()函数就足够了?
Joh*_*ett 10
动态语言通常鼓励Duck Typing,其中对象的方法决定了它应该如何使用而不是显式契约(例如接口).