给定此功能:
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(pattern, value);
}
};
return repeater;
};
如何在this.markup.replace()
全球范围内进行替换?这是问题所在。如果我这样使用它:
alert(new Repeater("$TEST_ONE $TEST_ONE").replace("$TEST_ONE", "foobar").markup);
警报的值为“ foobar $ TEST_ONE”。
如果更改Repeater
为以下内容,则Chrome中的任何内容都无法替换:
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(new RegExp(pattern, "gm"), value);
}
};
return repeater;
};
...而警报为$TEST_ONE $TEST_ONE
。