失去上下文与替换

时间:2016-05-23 05:33:19

标签: javascript qooxdoo

在QooxDoo中,我对此代码有疑问

html2plain : function (html) {
     html = html.replace(/<(S*?)[^>]*>.*?|<.*?\/>/g,  function( tag )
     {
          return this.pushHashtag(tag.toUpperCase());
      } );
      return( html );
 },

当涉及到行

return this.pushHashtag(tag.toUpperCase());

变量this没有上下文,函数pushHashtag变得不可用。

1 个答案:

答案 0 :(得分:0)

解决这个问题的一种方法是将'this'绑定到函数。 为此,您需要更改匿名函数,如下所示(您应该将此函数发送到replace方法):

function(tag) {
  return this.pushHashtag(tag.toUpperCase());
}.bind(this)

现在,在这个函数中,'this'将引用“right”'this'