Blogger Information
Blog 59
fans 6
comment 0
visits 51902
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
箭头函数常用场景,es6中class原型与原型链属性-Es6-49课9.3
希望
Original
897 people have browsed it

1、箭头函数语法,常用场景

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>箭头函数语法</title>
  7. </head>
  8. <body>
  9. <script>
  10. // 1. 无参数
  11. let f1 = function () {
  12. console.log("f1()");
  13. };
  14. f1();
  15. // 箭头函数,没有参数,圆括号不能省
  16. f1 = () => console.log("->f1()");
  17. f1();
  18. // IIFE:立即函数
  19. // (() => console.log("->f1()"))();
  20. console.log("---------");
  21. // 2. 单个参数
  22. let f2 = function (item) {
  23. console.log(`f2(${item})`);
  24. };
  25. f2("item");
  26. // 箭头函数
  27. f2 = (item) => console.log(`->f2(${item})`);
  28. f2("item");
  29. console.log("---------");
  30. // 3. 多个参数
  31. let f3 = function (...items) {
  32. console.log("f3()", items);
  33. };
  34. f3(1, "a", 3, 4);
  35. // 箭头函数,多条语句时一定要加大括号{}
  36. f3 = (...items) => {
  37. console.log(this);
  38. console.log("->f3()", items);
  39. };
  40. f3(5, 6, "b", 8);
  41. </script>
  42. </body>
  43. </html>

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>箭头函数的一个小案例</title>
  7. </head>
  8. <body>
  9. <script>
  10. let user = {
  11. // 属性
  12. name: "小刘",
  13. // 方法
  14. getName: function () {
  15. // 解决了this指向问题
  16. setTimeout(() => {
  17. console.log(this);
  18. console.log("My name is ", this.name);
  19. }, 1000);
  20. },
  21. };
  22. user.getName();
  23. // 箭头函数主是要替代之前的函数表达式
  24. // 箭头函数没有自己的this,支持词法作用域/块级作用域
  25. </script>
  26. </body>
  27. </html>

2、es6中class原型与原型链属性

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>es6中的class类</title>
  7. </head>
  8. <body>
  9. <script>
  10. // 原生js中没有类, 通过"构造函数"模拟类
  11. function Person(name) {
  12. // 属性
  13. this.name = name;
  14. }
  15. // 公共方法放在函数的原型对象上
  16. Person.prototype.sayName = function () {
  17. return this.name;
  18. };
  19. let person = new Person("小李");
  20. let person1 = new Person("小刘");
  21. console.log(person);
  22. console.log(person1);
  23. // es6方法
  24. class PersonClass {
  25. // 构造方法
  26. constructor(name) {
  27. this.name = name;
  28. }
  29. // 原型方法
  30. sayName() {
  31. return this.name;
  32. }
  33. }
  34. person = new PersonClass("小王");
  35. console.log(person.sayName());
  36. // 函数, 任何一个函数都有下面二个
  37. function fn(a, b) {}
  38. console.dir(fn);
  39. // prototype: 原型属性: 当函数是构造函数时,才有用
  40. // __proto__: 原型链属性, 因为函数也是对象
  41. console.log(fn instanceof Object);
  42. // 对象: 任何对象都有一个__proto__
  43. console.log({});
  44. console.log({}.toString());
  45. // __proto__: 原型链属性
  46. // 构造函数的原型属性 prototype,上面是当前构造函数的所有实例所共享的属性和方法
  47. function A() {
  48. }
  49. console.dir(A);
  50. let a = new A();
  51. console.log(a);
  52. // 1. 函数有二个重要的属性
  53. // 原型属性: prototype, 做为构造函数的时候才会用到,当该属性的指针指向新对象的__proto__
  54. // 原型链属性: __proto__, 因为任何一个对象都有这个属性,指向自己的公共方法,函数也是对象,当然也有这个属性
  55. </script>
  56. </body>
  57. </html>
  • 总结:
  • 箭头函数解决了this当前变量指向问题
  • 任何一个函数都有两个属性:prototype__proto__
Correcting teacher:天蓬老师天蓬老师

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