gpt4 book ai didi

javascript - 鸭子在 Javascript 中打字

转载 作者:IT王子 更新时间:2023-10-29 03:00:41 25 4
gpt4 key购买 nike

有人可以给我一个 Javascript 中 Duck Typing 继承的例子吗?我正在探索 OO javascript,我听说过 duck typing,但看不到它在 javascript 中使用的任何示例。

最佳答案

Duck Typing”的规则是

If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.

在基于类的面向对象编程语言(例如 C++)中,要使两个对象看起来像鸭子,您必须从公共(public)“接口(interface)”类继承它们的类,因此编译器会让您调用 duck 方法。这就是所谓的强类型。

现在这是在 Javascript 中的实现方式:

var duck = {  
appearance: "feathers",
quack: function duck_quack(what) {
print(what + " quack-quack!");
},
color: "black"
};

var someAnimal = {
appearance: "feathers",
quack: function animal_quack(what) {
print(what + " whoof-whoof!");
},
eyes: "yellow"
};

function check(who) {
if ((who.appearance == "feathers") && (typeof who.quack == "function")) {
who.quack("I look like a duck!\n");
return true;
}
return false;
}

check(duck); // true
check(someAnimal); // true

请看,check 函数检查传递的对象是否看起来像鸭子(它检查外观及其嘎嘎叫的能力)。我们将两个不同的对象传递给它,它会在两者上返回 true。除了外观和嘎嘎声,这些可能完全不同,但在这个特定的 check 函数中,它们的行为方式相同(具有公共(public)接口(interface)),它们看起来都像“鸭子”。我们可以在两个对象上调用 quack 方法(谁在乎它们到底是什么)。

关于javascript - 鸭子在 Javascript 中打字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3379529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com