我在网上阅读随机主题时遇到了鸭子打字这个术语,并没有完全理解它.
什么是"鸭子打字"?
一些程序员建议不要在Javascript中使用伪经典继承,但建议使用duck-typing并为每个对象提供一组功能.
有一个很好的例子说明如何做到这一点?我在下面有一个例子,但它一次只分配一个函数.我们可以为一个对象分配一组方法,例如我们可以设置一个OceanAnimal可以"游泳","潜水"和"上升"的原型,一个LandAnimal"跑","走路"和"跳跃"的原型",让一个对象继承一个或两个?(所以鱼对象可以继承或获得的能力OceanAnimal,和龟可以得到两者的功能OceanAnimal和LandAnimal?)
var yoyo = {
name: "Yoyo",
type: "turtle"
}
var simba = {
name: "Simba",
type: "lion"
}
var dolphy = {
name: "Dolphy",
type: "dolphin"
}
function swim(n) {
console.log("My name is", this.name, ", I am a", this.type, "and I just swam", n, "feet")
}
function run(n) {
console.log("My name is", this.name, ", I am a", this.type, "and I just ran", n, "feet")
}
Object.prototype.respondTo = function(method) …Run Code Online (Sandbox Code Playgroud) JavaScript 中的函数式编程是否可以具有任何类型的多态性?
我喜欢 FP,但是当我想使用 JS 时,除了使用类/原型之外,我无法弄清楚如何在 JS 中支持多态性。
例如如何toString在 JS 中使用 FP实现?
使用 OOP,我可以简单地重载,toString以便object.toString()执行特定于object或其原型的 toString 代码。
javascript polymorphism types functional-programming parametric-polymorphism
在angularjs中,在测试服务时,我想检查返回的对象是否是Promise.
现在我正在做以下事情 -
obj.testMethod()
.should.be.instanceOf($q.defer());
Run Code Online (Sandbox Code Playgroud)