Phương thức
function wrapper[] {
return anotherFn.apply[null, arguments];
}
9 gọi hàm được chỉ định với giá trị function wrapper[] {
return anotherFn.apply[null, arguments];
}
0 đã cho và function wrapper[] {
return anotherFn.apply[null, arguments];
}
1 được cung cấp dưới dạng một mảng [hoặc một đối tượng giống như mảng]Thử nó
cú pháp
apply[thisArg]
apply[thisArg, argsArray]
Thông số
function wrapper[] {
return anotherFn.apply[null, arguments];
}
0Giá trị của
function wrapper[] {
return anotherFn.apply[null, arguments];
}
0 được cung cấp cho cuộc gọi đến function wrapper[] {
return anotherFn.apply[null, arguments];
}
2. Nếu chức năng không ở chế độ nghiêm ngặt, function wrapper[] {
return anotherFn.apply[null, arguments];
}
3 và function wrapper[] {
return anotherFn.apply[null, arguments];
}
4 sẽ được thay thế bằng đối tượng toàn cục và các giá trị nguyên thủy sẽ được chuyển đổi thành đối tượngfunction wrapper[] {
return anotherFn.apply[null, arguments];
}
5 Tùy chọnMột đối tượng giống như mảng, chỉ định các đối số mà
function wrapper[] {
return anotherFn.apply[null, arguments];
}
2 sẽ được gọi hoặc function wrapper[] {
return anotherFn.apply[null, arguments];
}
3 hoặc function wrapper[] {
return anotherFn.apply[null, arguments];
}
4 nếu hàm không được cung cấp đối sốGiá trị trả về
Kết quả của việc gọi hàm với giá trị và đối số
function wrapper[] {
return anotherFn.apply[null, arguments];
}
0 đã chỉ địnhSự miêu tả
Ghi chú. Hàm này gần như giống hệt với
function wrapper[...args] {
return anotherFn[...args];
}
0, ngoại trừ việc function wrapper[...args] {
return anotherFn[...args];
}
0 chấp nhận một danh sách đối số, trong khi function wrapper[] {
return anotherFn.apply[null, arguments];
}
9 chấp nhận một mảng đối số — ví dụ: function wrapper[...args] {
return anotherFn[...args];
}
3 so với. function wrapper[...args] {
return anotherFn[...args];
}
4Thông thường, khi gọi hàm, giá trị
function wrapper[] {
return anotherFn.apply[null, arguments];
}
0 bên trong hàm chính là đối tượng mà hàm được truy cập trên đó. Với function wrapper[] {
return anotherFn.apply[null, arguments];
}
9, bạn có thể gán một giá trị tùy ý là function wrapper[] {
return anotherFn.apply[null, arguments];
}
0 khi gọi một hàm hiện có mà không cần gắn hàm đó vào đối tượng dưới dạng thuộc tính trước. Điều này cho phép bạn sử dụng các phương thức của một đối tượng làm các hàm tiện ích chungBạn cũng có thể sử dụng bất kỳ loại đối tượng nào giống như mảng làm tham số thứ hai. Trong thực tế, điều này có nghĩa là nó cần phải có thuộc tính
function wrapper[...args] {
return anotherFn[...args];
}
8 và thuộc tính số nguyên ["chỉ mục"] trong phạm vi function wrapper[...args] {
return anotherFn[...args];
}
9. Ví dụ: bạn có thể sử dụng một function wrapper[] {
return anotherFn.apply[null, arguments];
}
50 hoặc một đối tượng tùy chỉnh như function wrapper[] {
return anotherFn.apply[null, arguments];
}
51. Bạn cũng có thể sử dụng function wrapper[] {
return anotherFn.apply[null, arguments];
}
1, ví dụfunction wrapper[] {
return anotherFn.apply[null, arguments];
}
Với các tham số còn lại và cú pháp trải rộng tham số, điều này có thể được viết lại thành
function wrapper[...args] {
return anotherFn[...args];
}
Nói chung,
function wrapper[] {
return anotherFn.apply[null, arguments];
}
53 tương đương với function wrapper[] {
return anotherFn.apply[null, arguments];
}
54 với cú pháp trải rộng tham số, ngoại trừ function wrapper[] {
return anotherFn.apply[null, arguments];
}
55 được mong đợi là một đối tượng giống như mảng trong trường hợp trước với function wrapper[] {
return anotherFn.apply[null, arguments];
}
9 và một đối tượng có thể lặp lại trong trường hợp sau với cú pháp trải rộngCảnh báo. Không sử dụng
function wrapper[] {
return anotherFn.apply[null, arguments];
}
9 để xây dựng chuỗi [ví dụ: để thực hiện kế thừa]. Điều này gọi hàm tạo như một hàm đơn giản, có nghĩa là function wrapper[] {
return anotherFn.apply[null, arguments];
}
58 là function wrapper[] {
return anotherFn.apply[null, arguments];
}
4 và các lớp sẽ đưa ra lỗi vì chúng không thể được gọi nếu không có function wrapper[] {
return anotherFn.apply[null, arguments];
}
40. Sử dụng function wrapper[] {
return anotherFn.apply[null, arguments];
}
41 hoặc function wrapper[] {
return anotherFn.apply[null, arguments];
}
42 để thay thếví dụ
Sử dụng apply[] để nối một mảng với một mảng khác
Bạn có thể sử dụng
function wrapper[] {
return anotherFn.apply[null, arguments];
}
43 để thêm một phần tử vào một mảng. Bởi vì function wrapper[] {
return anotherFn.apply[null, arguments];
}
44 chấp nhận một số lượng đối số khác nhau, bạn cũng có thể đẩy nhiều phần tử cùng một lúc. Nhưng nếu bạn chuyển một mảng cho function wrapper[] {
return anotherFn.apply[null, arguments];
}
44, nó sẽ thực sự thêm mảng đó dưới dạng một phần tử, thay vì thêm các phần tử riêng lẻ, kết thúc bằng một mảng bên trong một mảng. Mặt khác, function wrapper[] {
return anotherFn.apply[null, arguments];
}
46 thực sự có hành vi mong muốn trong trường hợp này, nhưng nó không nối thêm vào mảng hiện có — nó tạo và trả về một mảng mớiTrong trường hợp này, bạn có thể sử dụng
function wrapper[] {
return anotherFn.apply[null, arguments];
}
47 để ngầm "trải" một mảng dưới dạng một chuỗi đối sốfunction wrapper[] {
return anotherFn.apply[null, arguments];
}
5Hiệu ứng tương tự có thể đạt được với cú pháp lây lan
function wrapper[] {
return anotherFn.apply[null, arguments];
}
4Sử dụng các hàm apply[] và tích hợp sẵn
Việc sử dụng thông minh
function wrapper[] {
return anotherFn.apply[null, arguments];
}
9 cho phép bạn sử dụng các hàm tích hợp sẵn cho một số tác vụ mà nếu không thì có thể yêu cầu lặp thủ công trên một bộ sưu tập [hoặc sử dụng cú pháp trải rộng]Ví dụ: chúng ta có thể sử dụng
function wrapper[] {
return anotherFn.apply[null, arguments];
}
49 và function wrapper[] {
return anotherFn.apply[null, arguments];
}
50 để tìm giá trị lớn nhất và nhỏ nhất trong một mảngfunction wrapper[] {
return anotherFn.apply[null, arguments];
}
5Nhưng hãy cẩn thận. bằng cách sử dụng
function wrapper[] {
return anotherFn.apply[null, arguments];
}
9 [hoặc cú pháp trải rộng] với danh sách đối số dài tùy ý, bạn có nguy cơ vượt quá giới hạn độ dài đối số của công cụ JavaScriptHậu quả của việc gọi một hàm có quá nhiều đối số [nghĩa là hơn hàng chục nghìn đối số] là không xác định và khác nhau giữa các công cụ. [Công cụ JavaScriptCore có giới hạn đối số được mã hóa cứng là 65536. ] Hầu hết các động cơ ném một ngoại lệ; . Để minh họa trường hợp sau này. nếu một công cụ như vậy có giới hạn bốn đối số [giới hạn thực tế tất nhiên cao hơn đáng kể], thì có vẻ như các đối số
function wrapper[] {
return anotherFn.apply[null, arguments];
}
52 đã được chuyển cho function wrapper[] {
return anotherFn.apply[null, arguments];
}
47 trong các ví dụ trên, thay vì toàn bộ mảngNếu mảng giá trị của bạn có thể tăng lên hàng chục nghìn, hãy sử dụng chiến lược kết hợp. áp dụng chức năng của bạn cho các khối của mảng tại một thời điểm