为什么下面可以用链式的写法?replace不是原生方法吗?

为什么下面可以用链式的写法?replace不是原生方法吗?

var str = itemTmpl

                      .replace('$pic_url',item.pic_url)

                      .replace('$name',item.name)

                      .replace('$distance',item.distance)

                      .replace('$min_price_tip',item.min_price_tip)

                      .replace('$mt_delivery_time',item.mt_delivery_time)


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,原生的链式调用跟jq的链式调用是一样的。再拿数组来说,arr.push() 从后面添加元素,返回值是添加完后的数组的长度,不是原来的对象:

http://img1.sycdn.imooc.com//climg/5e61fbbb09256a1803530074.jpg

那么就不能再进行链式调用:

http://img1.sycdn.imooc.com//climg/5e61fbe7095b960e07870113.jpg

而reverse方法还是返回原来的新数组,所以可以接着链式调用:

http://img1.sycdn.imooc.com//climg/5e61fc3609d7e77605860072.jpg

同学再理解下。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

好帮手慕粉 2020-03-05 20:34:37

同学你好,是的,replace是原生的方法,但是原生也是可以进行链式调用的。例:

http://img1.sycdn.imooc.com//climg/5e60f19c0962f75c03730096.jpg

先翻转数组,再以-分隔将其转为字符号。

只要调用方法返回的是原对象,就可以进行链式调用。

如果我的回答帮助了 你,欢迎采纳,祝学习愉快~

  • 提问者 慕尼黑5122342 #1
    只要调用方法返回的是原对象,就可以进行链式调用。这句话是什么意思?原生什么情况可以进行链式调用,什么情况不能进行链式调用?
    2020-03-06 14:10:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师