JavaScript设计模式基础之面向对象的JavaScript(二)
2021-06-28 08:04
标签:对象 不能 指令 inf OLE 模式 col 属性 function 多态 多态的实际含义:同一操作作用与不同的对象上面,可以产生不同的解释和不同的执行结果,就是说,给不同的对象发送同一个消息 的时候,这些对象会根据这个消息分别给出不同的反馈 代码如下: 这段代码实现了多态性,当我们分别向鸭和鸡发出叫指令时候,他们根据消息做出了不同的反应 运行结果: 但是这个代码确不能让人满意 因为如果我们还需要增加对象 那么会去反复改动make函数 多态的思想是把变和不变分离开来,改写一下这段代码 改写后代码如下: 输出如下: 这样就已经把对象和行为完全分离了 JavaScript设计模式基础之面向对象的JavaScript(二) 标签:对象 不能 指令 inf OLE 模式 col 属性 function 原文地址:https://www.cnblogs.com/y-y-y-y/p/9649605.html class Duck{};
class Chicken{};
let make = function(animal){
//instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上
if(animal instanceof Duck){
console.log(‘gagaga‘);
}else if(animal instanceof Chicken){
console.log(‘gegege‘);
}
}
make(new Duck());
make(new Chicken());
//鸭
class Duck{};
Duck.prototype.sound = function(){
console.log(‘gagaga‘);
}
//鸡
class Chicken{};
Chicken.prototype.sound = function(){
console.log(‘gegege‘)
}
//狗
class Dog{};
Dog.prototype.sound = function(){
console.log(‘wangwangwang‘)
}
let make = function(animal){
animal.sound();
}
make(new Duck());
make(new Chicken());
make(new Dog());
文章标题:JavaScript设计模式基础之面向对象的JavaScript(二)
文章链接:http://soscw.com/index.php/essay/98801.html