นี่เป็นสิ่งที่น่าสนใจซึ่งอาจแสดงให้เห็นถึงพลังของวัตถุจาวาสคริปต์ สิ่งที่เราต้องทำคือการส่งออก Hello, World ตามที่กล่าวไว้ในบทความก่อนหน้าและอินพุตคือการพิมพ์ ('Hello') ('World') และนี่คือฟังก์ชั่นลำดับที่สูงกว่า
ฟังก์ชั่นขั้นสูง
คำสั่งซื้อขั้นสูงดูเหมือนคำลึกลับสำหรับเทคนิคการเขียนโปรแกรมขั้นสูงและฉันคิดอย่างนั้นเมื่อฉันเห็นมันเป็นครั้งแรก
ฟังก์ชั่นการสั่งซื้อที่สูงขึ้นของ JavaScript
อย่างไรก็ตามฟังก์ชั่นลำดับที่สูงกว่าเป็นเพียงฟังก์ชั่นที่ใช้ฟังก์ชั่นเป็นอาร์กิวเมนต์หรือค่าส่งคืน สวัสดีและโลกเป็นตัวอย่างง่ายๆข้างต้น
การคัดลอกรหัสมีดังนี้:
var moqi = function (p1) {
this.add = function (p2) {
ส่งคืน p1 + '' + p2;
-
return add;
-
เราสามารถใช้ฟังก์ชั่นนี้ได้เช่นนี้
การคัดลอกรหัสมีดังนี้:
console.log (moqi ('hello') ('โลก'));
บางทีกระบวนการนี้ค่อนข้างสับสนมาดูกันว่ามีรายละเอียดมากขึ้นหรือไม่
การคัดลอกรหัสมีดังนี้:
> typeof moqi ('สวัสดี')
<- "ฟังก์ชั่น"
> moqi ('สวัสดี')
<- ฟังก์ชั่น (p2) {
ส่งคืน p1 + '' + p2;
-
ในความเป็นจริง Moqi ('Hello') เป็นฟังก์ชั่น, moqi ('Hello')
การคัดลอกรหัสมีดังนี้:
> var m = moqi ('สวัสดี')
> m ('โลก')
> "สวัสดีโลก"
การตัดสินจากสถานการณ์ข้างต้นฟังก์ชั่นการสั่งซื้อที่สูงขึ้นสามารถทำให้รหัสกระชับและมีประสิทธิภาพมากขึ้น โดยธรรมชาติเรายังสามารถสร้างฟังก์ชั่นเพื่ออำนวยความสะดวก:
การคัดลอกรหัสมีดังนี้:
> moqi ('hello') ('World') ('Phodal')
> "สวัสดี World Phodal"
ดังนั้นจึงมีฟังก์ชั่นดังกล่าว
การคัดลอกรหัสมีดังนี้:
var moqi = function (p1) {
ฟังก์ชั่น return (p2) {
ฟังก์ชั่น return (p3) {
ส่งคืน p1 + ',' + p2 + '' + p3;
-
-
-
คืนค่าฟังก์ชั่นลำดับที่สูงขึ้น
สัญญาณที่จำเป็นต้องแนะนำฟังก์ชั่นการสั่งซื้อที่สูงขึ้นเป็นนามธรรมนั้นซ้ำกันหรือรหัสที่คล้ายกัน จากนั้นเรากู้คืนไปยังฟังก์ชั่นก่อนหน้าทีละขั้นตอน:
การคัดลอกรหัสมีดังนี้:
var moqi = function (p1) {
this.add = function (p2) {
ฟังก์ชั่น return (p3) {
ส่งคืน p1 + ',' + p2 + '' + p3;
-
-
คืนสิ่งนี้เพิ่ม;
-
จากนั้นสร้างฟังก์ชั่นใหม่
การคัดลอกรหัสมีดังนี้:
var moqi = function (p1) {
this.add = function (p2) {
this.add1 = ฟังก์ชั่น (p3) {
ส่งคืน p1 + ',' + p2 + '' + p3;
-
คืนสิ่งนี้ ADD1;
-
คืนสิ่งนี้เพิ่ม;
-
การใช้วิธีการโทรใน JavaScript จะมี:
การคัดลอกรหัสมีดังนี้:
var moqi = function (p1) {
var self = this;
ฟังก์ชั่น fd (p2) {
this.add1 = ฟังก์ชั่น (p3) {
ส่งคืน p1 + ',' + p2 + '' + p3;
-
-
self.add = function (p2) {
fd.call (นี่, p2);
คืนสิ่งนี้ ADD1;
-
คืนค่า self.add;
-
ตัวอย่างฟังก์ชั่นขั้นสูง
ตัวอย่างข้างต้นเป็นเพียงเพื่อความสนุกสนานและตัวอย่างต่อไปนี้เป็นแอปพลิเคชันจริง
การคัดลอกรหัสมีดังนี้:
เพิ่ม = ฟังก์ชั่น (a, b) {
ส่งคืน A + B;
-
ฟังก์ชั่นคณิตศาสตร์ (func, อาร์เรย์) {
ส่งคืน func (อาร์เรย์ [0], อาร์เรย์ [1]);
-
console.log (คณิตศาสตร์ (เพิ่ม, [1,2]));
> คณิตศาสตร์ (เพิ่ม, [1,2])
<3
การเพิ่มที่ส่งผ่านในตัวอย่างด้านบนเป็นพารามิเตอร์และการส่งคืนเป็นเพียงฟังก์ชั่น ตัวอย่างเช่นมีฟังก์ชั่นใน jQuery
การคัดลอกรหัสมีดังนี้:
// แปลงประเป็น camelcase; ใช้โดย CSS และโมดูลข้อมูล
// Microsoft ลืมที่จะ hump คำนำหน้าผู้ขายของพวกเขา (#9572)
Camelcase: ฟังก์ชั่น (สตริง) {
return string.replace (rmsprefix, "ms-") .replace (rdashalpha, fcamelcase);
-
นี่เป็นกรณีที่มีการใช้ฟังก์ชั่นลำดับสูงกว่าเพื่อที่จะควบคุม JS -