为了账号安全,请及时绑定邮箱和手机立即绑定

js中关于this的指向的疑问?

js中关于this的指向的疑问?

HUWWW 2018-09-01 09:06:50
今天开发需要一个简单的功能,就是把字符串的变量用值来替换。代码如下://替换变量为值String.prototype.replaceVariables = function(){var variables = this.getVariables(); //获取变量数组for  (var i = 0; i < variables.length; i++) {      var reg = new RegExp(variables[i],"g")      this = this.replace(reg,i);   //报错!!!this不能赋值}}//返回变量数组String.prototype.getVariables = function(){var variableReg = new RegExp("[A-Z]+[0-9]+");return  this.match(variableReg);}调用方法:var _formula1 = 'IF(BG4=="",BG4,"")';//BG4是一个变量标识 需要替换_formula1.replaceVariables();错误提示:这里this指向的应该是_formula1对象,replace替换后会返回新对象,再把新对象赋值给this,我觉得逻辑上应该没问题。 麻烦大家帮我看看我想的哪里出问题了。。。谢谢了。
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

this就是只读的,而且对于字符串来说,你想改变一个字符串实例那是不可能的,变通的办法就是生成一个新的字符串实例,从String.prototype.replace方法你就可以看出,别人就是返回的一个新的字符串,而不是修改现有的字符串,为什么是这样,那就需要从字符串在内存的存储说起,可以google下


查看完整回答
反对 回复 2018-10-13
  • 1 回答
  • 0 关注
  • 549 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信