NodeJS如何将onchange事件添加到字符串中
nodejs how to add onchange event to a string
是否可以将onchange事件添加到字符串中?
我想要这样的东西:
var myString = '';
var doSomething = function(){
console.log('string changed');
};
myString.on('change',doSomething);
myString = 'new'; //at this point the on('change') event should be run
不,这是不可能的,因为字符串在 JavaScript 中是不可变的。
任何看起来好像在更改字符串的字符串操作实际上都在创建一个新字符串。
因此,即使您以某种方式将事件附加到String.prototype
,也无法检测到更改,因为字符串永远不会更改
由于"macek"的答案(顺便说一下(,这不是一个正确的答案,而是一个对我有用的"解决方法"。也许其他人也对此有所帮助。
var events = require('events');
var myString = function(val){
this.myVal = val;
this.change = function(newVal)
{
if(newVal !== this.myVal){
this.myVal = newVal;
this.emit('changed');
}
}
this.val = function(){
return this.myVal;
}
};
myString.prototype.__proto__ = events.EventEmitter.prototype;
var doSomething = function(){
console.log('string changed');
};
var somestring = new myString('');
console.log(somestring.val()); // output ''
somestring.on('changed',doSomething);
somestring.change('new'); //output doSomething() -> 'string changed'
console.log(somestring.val()); //output 'new'
相关文章:
- 在 JS 中添加字符串之前强制换行
- javascript在动态Url中匹配并添加字符串
- 添加字符串+选择要输入的文本
- 通过向动态id添加字符串,使用JavaScript控制文本框
- 在哪里添加字符串原型
- 在 JavaScript 中添加字符串 “1” + - “2” == “1-2”
- 如何在javascript中的数组中添加字符串
- 如何在javascript/jquery中添加字符串美元金额
- 引用变量,它执行函数,但是向变量中添加字符串,将函数作为字符串而不是值返回
- 如何在 javaScript 中添加 C# 字符串作为文本弹出窗口
- AngularsJS JavaScript 匹配单词并添加字符串
- 使用 javascript 在括号内添加字符串
- 使用javascript进行大写,每隔换行一次,并在每一新行的开头添加字符串
- jQuery添加字符串而不是串联
- 正在向提交的URL末尾添加字符串
- 可以't使用concat添加字符串数组
- 如何自动添加字符串“;http://'当用户通过jquery在文本框中输入时
- jquery问题——向动态调用的元素添加字符串
- MVC 5 DropDownList向Jquery的值添加字符串
- 如何在单击链接/过滤器的基础上向onclick函数添加字符串?