亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 571 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號