为什么可以变成数组?

为什么可以变成数组?

const str4=Array.prototype.slice.call(str1);  这句话为什么可以把字符串str1变成数组的样子?

正在回答

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

2回答

你好同学,虽然字符串也有一个一模一样的slice()方法。但是它们的作用是不一样的哦。

注意使用数组中的slice()方法返回的是一个数组。使用字符串的slice()方法返回的是一个字符串。同学可以问题中的代码测试一下,参考如下定义一个字符串

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

它会把字符串分隔后返回一个数字,结果:

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

所以要想一个字符串返回一个数组,还是要通过call()来调用数组上的slice()方法哦 .

祝学习愉快 ,望采纳。

好帮手慕夭夭 2019-04-28 17:52:50

你好同学,这里并不是说让str1成了数组的样子,而是让它能够使用数组的方法。在js中,Array是创建数组的一个全局对象,你可以理解为它是所有数组的一个祖先。

所有的对象,都会存在一个prototype,意思是原型,slice就是Array原型上面的方法。所以只有数组可以使用这个方法。之所以str1可以使用数组的方法,关键在于call()。calll()方法的作用就是帮助一个对象去调用另一个对象的方法。

所以这句代码可以简单的理解为,通过call()方法,让str1能够使用数组的slice的方法。

祝学习愉快 ,望采纳。

  • 提问者 芥子1204 #1
    字符串不是有个slice方法吗?相当于str1.slice() 那返回的也是个字符串呀?为什么是数组?
    2019-04-28 22:39:31
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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