以委托取代子类,js代码样例
时间: 2024-05-08 17:19:59 浏览: 70
delegate 委托 示例 代码
3星 · 编辑精心推荐
:这是一个比较简单的委托模式实现,通过将子类中的方法转移到一个独立的委托对象中来实现:
```js
// 独立的委托对象,包含子类中的方法
const delegate = {
sayHello() {
console.log("Hello, world!");
}
};
// 通过委托,将delegate对象中的方法添加到MyClass类中
function MyClass() {
this.delegate = delegate;
}
MyClass.prototype.sayHello = function() {
this.delegate.sayHello();
}
// 使用MyClass
const myInstance = new MyClass();
myInstance.sayHello(); // 输出:Hello, world!
```
在这个例子中,我们创建了一个名为`MyClass`的类,该类具有一个名为`sayHello`的方法。但我们不是在`MyClass`中直接实现该方法,而是将该方法委托给一个名为`delegate`的独立对象。
在`MyClass`的构造函数中,我们将`delegate`对象与`MyClass`实例相关联,这样它就可以使用`delegate`中的方法。然后,我们将`sayHello`方法添加到`MyClass.prototype`中,并将它定义为调用`delegate.sayHello`。
最后,我们创建一个`MyClass`的实例(`myInstance`),并调用它的`sayHello`方法。在这个例子中,由于我们使用了委托模式,`MyClass`实际上并没有实现`sayHello`方法,而是将它委托给`delegate`对象。
阅读全文