js number prototype 扩展方法获取this值

发布于 2022-09-01 18:53:28 字数 178 浏览 22 评论 0

为什么第一个转换一下可以打印出来值,而第二个不转换打印不出来图片描述

(1234).commaSplit()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不打扰别人 2022-09-08 18:53:28

JS变量分为基本类型和引用类型。1234是基本类型,当在它上面调用方法时会先将其转化为对应的包装类型。(1234).commaSplit()这句代码的内部执行过程是这样的:

var t = new Number(1234);
t.commaSplit();

所以真正执行commaSplit()的是变量t,所以其中的this是一个Number对象,用Math.floor()转一下就会返回对应的基本类型的值了,因为这个方法返回的是一个基本类型的数字,而不是Number对象。

实际上有很多方法都可以实现这种转换,例如+this,或this.valueOf()Number(this)……

只要是结果为基本类型数字的都可以。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文