JavaScript - ceci pointe vers le problème

Crystal Iwwish 2021-11-25 18:52:55
javascript ceci pointe vers le

Par défaut

1.1Fonction normale

Qui appelle à qui,Quand il n'y a pas d'appelant en mode strict this La valeur de undefined.

function fn() {

console.log(this);
}
fn();//Produitswindow

1.2Fonctions fléchées

Dans les fonctions fléchées this Complètement différent de la fonction normale,Et n'est pas affecté par la façon dont il est appelé,En fait, il n'existe pas dans les fonctions fléchées this !Accès en fonction de la flèche this C'est juste le champ d'application de la fonction fléchée this Variables.

 let sayHi = function () {

console.log(this); // Dans cette fonction fléchée this Déclarer l'environnement pour la fonction this D'accord.
};
let user = {

name: "Xiao Ming",
// Dans cette fonction fléchée this Déclarer l'environnement pour la fonction this D'accord.
walk: () => {

console.log(this);
},
sleep: function () {

let str = "hello";
console.log(this);
let fn = () => {

console.log(str);
console.log(this); // Dans cette fonction fléchée this Avec sleep Dans this D'accord.
};
// Appelez la fonction flèche 
fn();
},
};
// Méthode d'ajout dynamique
user.sayHi = sayHi;
// Appel de fonction
user.sayHi();
user.sleep();
user.walk();

Définir les valeurs

2.1 callcall(this,Ginseng1,Ginseng2...Ginsengn)

 function sayHi() {

console.log(this);
}
let user = {

name: 'Xiao Ming',
age: 18
}
let student = {

name: 'Petit Rouge.',
age: 16,
}
// Appelez la fonction et spécifiez this Valeur de
sayHi.call(user); // this La valeur est: user
sayHi.call(student); // this La valeur est: student

2.2 applyapply(this,[Ginseng1,Ginseng2...Ginsengn])

function counter(x, y) {

return x + y;
}
// Appelez counter Fonctions,Et passer les paramètres
let result = counter.apply(null, [5, 10]);
console.log(result);

2.3 bindcall(this,Ginseng1,Ginseng2...Ginsengn)
bind Méthodes et La fonction n'est pas appelée, Au lieu de cela, créez un this Nouvelle fonction pour la valeur , La méthode d'utilisation est indiquée dans le code suivant :

 // Fonction normale
function sayHi() {

console.log(this);
}
let user = {

name: 'Xiao Ming',
age: 18
}
// Appelez bind Désignation this Valeur de
let sayHello = sayHi.bind(user);
// Utilisation des appels bind Nouvelle fonction créée 
sayHello();
版权声明
本文为[Crystal Iwwish]所创,转载请带上原文链接,感谢
https://javamana.com/2021/11/20211125184339660y.html

  1. hive学习笔记之二:复杂数据类型,五分钟搞懂MySQL主从复制原理
  2. hive学习笔记之一:基本数据类型,java实现分页技术详解
  3. HDU-3038-How Many Answers Are Wrong【 带权并查集 】题解,java实战项目论坛
  4. HDU 1078 FatMouse and Cheese(记忆化搜索,DP,rocketmq教程教程
  5. [Java multithreading] static synchronized method and synchronized (class) code block
  6. [Java multithreading] synchronized statement block
  7. [Java multithreading] synchronized synchronization method
  8. [Java multithreading] thread priority and guard thread
  9. [Java multithreading] stop the thread
  10. Several methods of [Java multithreading] thread
  11. [Java multithreading] Java multithreading skills
  12. Structure des données Python: tableaux, listes, piles, files d'attente et implémentations
  13. Re - Learning Swagger 2.0 and Swagger 3.0 of Spring Series
  14. Error editing HTML5 using webstorm
  15. 【Spring】mybatis-spring
  16. JavaScript post request returned an exception, possibly Cross - Domain request
  17. 图解 Kafka 线程模型及其设计缺陷
  18. Springboot + mybatis Plus + springsecurity + JWT implements user stateless request authentication (front and back end separation)
  19. SQL injection and XSS attack of springboot security vulnerability
  20. Docker employee readme: Why did docker lose to kubernetes?
  21. 19 high force linux commands, hurry to use them!
  22. Add data files for Oracle tablespaces or temporary tablespaces
  23. Intellij IDEA神器居然还有这些小技巧,mysql集群搭建视频
  24. IntelliJ IDEA(2019)之Web项目创建,掌门一对一java面试题
  25. InnoDB(2,如何访问Redis中的海量数据
  26. InheritableThreadLocal使用详解,java多线程面试题及答案整理
  27. How does Oracle modify the data type of a column
  28. Oracle 12C 12.1.0.1.0 management control file official document translation instructions
  29. Oracle 10g 10.2.0.1 in Oracle Linux 5.4 32bit RAC installation manual (Yimo Xiyang)
  30. Oracle 12C in Oracle Linux 6.5 64bit installation manual
  31. 一天十道Java面试题----第一天(面向对象-------》ArrayList和LinkedList)
  32. Schéma du modèle de fil Kafka et de ses défauts de conception
  33. Starting and shutting down Oracle RAC database cluster
  34. CRS_ Oracle CRS stack is already configured and will be running under init(1M)
  35. Common skills of Oracle stored procedure
  36. Check the number of CPUs, core books and threads of the Linux system
  37. jQuery-实例方法
  38. Oracle de duplicated data
  39. jQuery-dom和jQuery,入口函数(基本知识)
  40. Oracle creates unique constraints on columns that already have duplicate data
  41. JavaScript-拷贝
  42. JavaScript-this指向问题
  43.  There is ^ [[a garbled code problem in the up and down keys in Oracle sqlplus
  44. JavaScript-封装与继承(两种)
  45. JavaScript-包装类型
  46. JavaScript-传值(引用类型,基本类型)
  47. JavaScript-面向对象(构造函数,实例成员,静态成员)
  48. JavaScript-解构赋值
  49. JavaScript-箭头函数
  50. JavaScript-参数
  51. JavaScript-预解析(变量提升)
  52. JavaScript-闭包closure
  53. JavaScript-声明变量的关键字
  54. JavaScript - mot - clé pour déclarer une variable
  55. Fermeture de fermeture JavaScript
  56. JavaScript Pre - parse (promotion des variables)
  57. Paramètres JavaScript
  58. Common annotations in springboot
  59. JavaScript - orienté objet (constructeur, membre d'instance, membre statique)
  60. JavaScript value Transfer (reference type, Basic type)