博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
注意!JS的结构你真的了解吗?
阅读量:6621 次
发布时间:2019-06-25

本文共 515 字,大约阅读时间需要 1 分钟。

ES6的新特性解构非常好用,但是使用的时候有没有坑呢?还真有一个,听我慢慢道来。

通常来说解构操作是对数据进行的,但是在JS中的数据跟别的语言不同,它不是单纯的数据解构,往往可以往里面塞入很多其他的功能进去,看一下下面的代码

这里我就假设有一个书本的数据结构,除了showPrice设个属性是一个方法外,其他的都是基本类型数据,那么我直接调用book.showPrice()方法,显示的结果是这样

这个结果跟我预期的是一样的,那么现在来试验下结构解析的方法来调用showPrice()方法

那么看一下这次的显示结果吧

结果是undefined!为什么会这样呢?来看一下this现在是指向那里了吧

输出结果如下

this指向了global,也就是现在的指针不再是book因此没有了unitprice的属性,那么输出自然是undefined了。

这是一种情况,然而如果是Class又会如何呢?这次我就直接把两种情况一起罗列出来

下面是显示结果

可以看到,通过解构方式获取到的showPrice()方法是没有this指针的,直接指向了undefined了。

通过这两个试验,应该了解到ES6的解构只能处理不设计到this指针的数据类型

转载地址:http://evjpo.baihongyu.com/

你可能感兴趣的文章
SQL Server 临时表的删除
查看>>
程序8
查看>>
【原】WebRebuild深圳站的一点感悟
查看>>
QT Basic---Widgets<1>
查看>>
Android开发10.3:UI组件GridView网格视图
查看>>
Power BI的一些视频演示资源
查看>>
TBluetoothLEDevice.UpdateOnReconnect
查看>>
QtTableView 简介
查看>>
Linux系统上安装软件(ftp服务器)
查看>>
[iOS] App引导页的简单实现 (Swift 2)
查看>>
MHA 代码解析(online swtich+master is alive 模式)
查看>>
利用openssl进行RSA加密解密
查看>>
盒模型--边界
查看>>
14.使用通配符
查看>>
软件的模块化开发
查看>>
腾讯、百度、阿里面试经验—(3)阿里面经
查看>>
稍复杂的ionic例子:显示一个列表,并且允许点击进入列表项
查看>>
一些新的web性能优化技术
查看>>
Liferay 6开发学习(二十六):数据库连接相关问题
查看>>
【转】半路学编程,可以成为大牛吗?
查看>>