Blogger Information
Blog 20
fans 0
comment 0
visits 8591
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
1. 实例演示对象与数组的解构赋值 和访问器属性,并描述与普通属性之间的区别与联系
A 管志岗-电商策划
Original
396 people have browsed it

1103 作业

  1. 实例演示对象与数组的解构赋值
  2. 实例演示访问器属性,并描述与普通属性之间的区别与联系

1. 实例演示对象与数组的解构赋值

  1. // 解构赋值
  2. const data = [100, 200]
  3. const a = data[0]
  4. const b = data[1]
  5. console.log(a, b);
  6. // 这种方式low,看第二种
  7. // 1. 数组解构
  8. let [uname, email] = ['杨过', '123@qq.com'];
  9. console.log(uname, email);
  10. // 更新
  11. // 在 [],{},()之前的分号不能省略
  12. [uname, email] = ['小龙女', '1456@qq.com'];
  13. console.log(uname, email);
  14. // 1. 当数组的值数量 < 变量数量, 取得是默认值
  15. [uname, email, gender] = ['管志岗', '134@qq.com']
  16. // [uname, email, gender = '女'] = ['管志岗', '134@qq.com']
  17. // 这样打印的出来没有第三个值gender,成了undefined
  18. console.log(uname, email, gender);
  19. // 当数组的值数量 > 变量数量,取得是 ...rest
  20. console.log('........................当数组的值数量 > 变量数量');
  21. [uname, ...art] = ['管志岗', '134@qq.com', '领导者'];
  22. console.log(uname, art);
  23. // 应用场景:交接二个数
  24. let x = 10;
  25. let y = 20;
  26. console.log(`x = ${x}, y = ${y}`);
  27. [y, x] = [x, y];
  28. console.log(`x = ${x}, y = ${y}`);
  29. // 2. 对象解构
  30. // 变量名 === 属性名
  31. let {num, price} = {num:2, price:5000};
  32. console.log(num, price);
  33. // 实际上每行代码后面都是有 ';', 只是默认不用填写,但是到前面为 [], {}, ()的时候就不能省略了
  34. // 在前一行代码后面如果没有填写分好,就在要执行的代码前面加上分号
  35. // ;({num, price} = {num:2, price:5000})
  36. // {}这个代码块不能在左边(左值),可以加上() 转成表达式
  37. // {num, price} = {num:2, price: 5000} 这样不行的
  38. ({num, price} = {num:2, price:5000});
  39. console.log(typeof (num, price));
  40. // 变量名和赋值名一样
  41. // 命名冲突可以用别名来使用,后面加 ':', 英文冒号
  42. let {pname, price:shop_price} = {pname: '手机', price: 40};
  43. console.log (pname, shop_price);
  44. // 应用场景1: 克隆对象
  45. let lesson = {name: 'ES6', score: 88};
  46. console.log(lesson);
  47. // 如果想创建爱你二个不相关额对象,值又完全一样,只能克隆
  48. console.log('------------------克隆');
  49. let {...obj} = lesson;
  50. console.log(obj);
  51. // 克隆的对象,完全不一样
  52. console.log(obj === lesson);
  53. // 应用场景2:解构传参
  54. // let show = function(user){
  55. // user 是一个对象
  56. // return `${user.uname}: ${user.email}`
  57. // }
  58. // let user = {uname:'朱老师', email: '334@qq.com'}
  59. // console.log(show(user));
  60. // 简化代码
  61. // let show = (user) => `${user.uname}: ${user.email}`
  62. // let user = {uname:'朱老师', email: '334@qq.com'}
  63. // console.log(show(user));
  64. // 简化代码,用属性值来接受
  65. // 使用对象解构进行简化传参
  66. show = ({uname, email}) => `${uname}: ${email}`
  67. user = {uname: '管志岗', email:'890@qq.com'}
  68. console.log(show(user));

实例演示

2. 实例演示访问器属性,并描述与普通属性之间的区别与联系

  1. let course = {
  2. lesson:{
  3. name: 'ES6',
  4. score: '60',
  5. },
  6. // 读取
  7. getScore(){
  8. return {
  9. name:this.lesson.name,
  10. course:this.lesson.score}
  11. },
  12. // 设置接口
  13. setScore(score){
  14. if(score >= 0 && score <= 100){
  15. this.lesson.score = score
  16. }else{
  17. console.log('成绩必须在1-100分之间');
  18. }
  19. }
  20. }
  21. // console.log(course.lesson.score);
  22. console.log(course.getScore());
  23. course.setScore(180);
  24. console.log(course.getScore());
  25. console.log('--------------- 普通方法');
  26. // 用户习惯
  27. // console.log(course.score);
  28. // course.score = 90
  29. // 使用 “访问器属性” 就可以实现
  30. course = {
  31. lesson:{
  32. name: 'ES6',
  33. score: '60',
  34. },
  35. // getScore ===> get score
  36. // 普通方法 ===> 访问器属性
  37. // 如果使用访问器属性,get必须要有,set可选
  38. score: 99,
  39. get score(){
  40. return {
  41. name:this.lesson.name,
  42. course:this.lesson.score}
  43. },
  44. // 将方法伪装为属性,属性化
  45. set score(score){
  46. if(score >= 0 && score <= 100){
  47. this.lesson.score = score
  48. }else{
  49. console.log('成绩必须在1-100分之间');
  50. }
  51. }
  52. }
  53. // 经过包装盒伪造,现在就可以像访问属性一样访问一个方法
  54. // 看着是访问的一个属性,实际也是方法
  55. // course.score ===> course.get score()
  56. console.log(course.score);
  57. course.score = 90
  58. console.log(course.score);
  59. // 访问器属性权重 > 同名属性
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:总结的很好, 没什么问题, 继续加油
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post