如何在 javascript 中为策略设计模式创建属性
How to create properties for a Strategy Design Pattern in javascript?
https://gist.github.com/Integralist/5736427
上面链接中的这部分代码给我带来了麻烦。背景:在"使用严格"条件下在Chrome扩展程序中运行
var Greeter = function(strategy) {
this.strategy = strategy;
};
// Greeter provides a greet function that is going to
// greet people using the Strategy passed to the constructor.
Greeter.prototype.greet = function() {
return this.strategy();
};
我想我需要创建属性"问候",但不知道如何。
我不断收到错误消息,说"无法设置未定义的属性'问候'"
如何创建属性问候语并使代码正常工作?
谢谢!
更新这是我的代码在我的扩展中的方式
var MessageHandling = new function(strategy) {
this.strategy = strategy;
};
MessageHandling.prototype.greet = function () {
return this.strategy();
};
//Later
var openMessage = new MessageHandling(openMessageAnimationStrategy);
openMessage.greet();
问题出在构造函数定义MessageHandling
中。您需要删除new
关键字,因为它在这里没有意义。
代替此代码:
var MessageHandling = new function(strategy) {
this.strategy = strategy;
};
使用这个:
var MessageHandling = function(strategy) {
this.strategy = strategy;
};
new
运算符用于从构造函数创建对象实例。不需要将其用于构造函数定义。
相关文章:
- 用于操纵DOM API的Javascript设计模式
- 用于多个选项卡和模块化的knockoutjs设计模式
- 自动化设计模式c++
- jQuery自动完成标记新的标签设计模式
- 有没有一种方法可以在设计模式下将ng模型或工厂绑定到iframe
- Javascript MVVM 设计模式 - 如何跟踪脏状态以及谁应该做 Ajaxing
- 包含 2 个或更多对象的页面上的 JavaScript 设计模式
- 在 Node 中.js释放 zalgo 的设计模式为什么异步路径是一致的
- Django设计模式-在加载时填充客户端JavaScript变量的方法
- Javascript策略设计模式问题
- 用于处理带有promise的外部接口中的参数的设计模式
- angularjs设计模式和从服务器获取数据的最佳实践
- JavaScript设计模式的建议
- 这种设计模式什么时候才能打破
- JavaScript设计模式,一个函数正在被覆盖
- BIRT报告在设计模式下导出到XLSX,但在运行时不导出
- 通量/反应设计模式
- 它是什么样的Javascript设计模式/方法
- 火狐浏览器 iframe 设计模式不起作用
- 如何在 javascript 中为策略设计模式创建属性