看到标题,可能你认为这个文章是说鸭子的,但实际这个是说javascript
首页因为JavaScript是个动态类型的语言,所以造成它具有很多的灵活性,所以才回有个,鸭子的比喻
鸭子类型的通俗说法是:“如果它走起路来像鸭子,叫起来也是鸭子,那么它就是鸭子。
下面是将上图用一段js代码描述出来,如下:
var yanzijiao = {
chuning:function(){
console.log("我会鸭子叫");
}
}
var jifangyazijiao = {
chuning:function(){
console.log("我也会鸭子叫");
}
}
var qu = []; // 鸭子和唱团
var isyazi = function (obj) {
if(obj && typeof obj.chuning === 'function'){
qu.push(obj);
console.log("欢迎加入鸭子团");
console.log("鸭子团个数:"+qu.length);
}
}
isyazi(yanzijiao);
isyazi(jifangyazijiao);
根本无需检查它们的类型,而是只需要保证它们
拥有 chuning方法。如果下次期望加入合唱团的是一只小狗,而这只小狗刚好也会鸭子叫,
我相信这只小狗也能顺利加入。
哈哈