Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การยกฟังก์ชันใน JavaScript


Hoisting เป็นเทคนิค JavaScript ที่จะย้ายตัวแปรและการประกาศฟังก์ชันไปที่ด้านบนสุดของขอบเขตก่อนที่จะเริ่มดำเนินการโค้ด ภายในขอบเขตไม่ว่าจะประกาศฟังก์ชันหรือตัวแปรไว้ที่ใด ฟังก์ชันหรือตัวแปรจะถูกย้ายไปอยู่ด้านบนสุดของขอบเขต

โปรดทราบว่าการชักรอกจะย้ายเฉพาะการประกาศในขณะที่งานที่มอบหมายยังคงอยู่

ตัวอย่าง

console.log(functionBelow("Hello"));
function functionBelow(greet) {
   return `${greet} world`;
}
console.log(functionBelow("Hi"));

ผลลัพธ์

Hello world
Hi world

โปรดทราบว่าการประกาศฟังก์ชันเกิดขึ้นหลังจากที่ถูกเรียก แต่ยังคงถูกเรียก สิ่งนี้เกิดขึ้นได้เนื่องจากการยกของฟังก์ชัน

นอกจากนี้ โปรดทราบด้วยว่าจะไม่ทำงานเมื่อคุณกำหนดฟังก์ชันต่างๆ เช่น ตัวแปร

console.log(functionBelow("Hello"));
var functionBelow = function(greet) {
   return `${greet} world`;
}
console.log(functionBelow("Hi"));

สิ่งนี้จะล้มเหลวโดยมีข้อผิดพลาด:functionBelow ไม่ใช่ฟังก์ชัน

หากคุณลบ var มันจะล้มเหลวโดยมีข้อผิดพลาด:ไม่ได้กำหนด functionBelow

โปรดทราบว่าเมื่อประกาศด้วย var มันถูกยกขึ้นเป็นตัวแปรในบริบท แต่ก็ยังไม่ได้กำหนดไว้ สิ่งนี้เรียกว่ารอกแบบปรับได้ เนื่องจากคุณสมบัตินี้ ฟังก์ชันที่ไม่ระบุชื่อและลูกศรจึงไม่ถูกยกขึ้นใน JavaScript