Hướng dẫn how do you call a function from a string in javascript? - làm thế nào để bạn gọi một hàm từ một chuỗi trong javascript?
Show
Thật không may, Mặc dù các cảnh báo, 0 an toàn hơn.Tuy nhiên, điều gì sẽ xảy ra nếu chúng ta có tên hàm trong một chuỗi, ví dụ:
Làm thế nào để chúng ta thực thi chức năng 1 mà không cần sử dụng eval ? Gần đây tôi đã gặp phải tình huống này khi sử dụng API lịch sử HTML5; Phương pháp Pushstate won cho phép bạn lưu trữ một tham chiếu trực tiếp đến một hàm để bạn cần xác định tên của nó là một chuỗi. Bạn cũng có thể phải đối mặt với những thách thức tương tự khi sử dụng nhân viên web hoặc bất kỳ API nào khác nơi các đối tượng được tuần tự hóa.Giải pháp thực thi đơn giản và an toàn nhất mà không có giải pháp Eval là một loạt các điều kiện, ví dụ:
Nó rất an toàn, nhưng khá kém hiệu quả và đau đớn khi viết nếu bạn có hàng tá các cuộc gọi chức năng có thể. Một giải pháp tốt hơn là sử dụng đối tượng 3 tham chiếu cửa sổ hiện tại và tất cả các mục trong đó. Chúng ta có thể kiểm tra xem 4 có sẵn dưới dạng đối tượng trong 3 hay không và chạy nó nếu nó là một hàm, ví dụ:
Bạn có thể thực hiện các kiểm tra khác nếu cần thiết để đảm bảo chức năng có tên dự kiến. Điều gì sẽ xảy ra nếu chức năng chúng ta muốn gọi có tham số - có lẽ được lưu trữ trong một mảng? Không vấn đề gì; Chúng tôi chỉ cần sử dụng phương pháp 6:
Vì vậy, một lý do khác để ngừng sử dụng Làm thế nào để bạn gọi chức năng của tôi trong JavaScript?Phương thức Call () là phương thức JavaScript được xác định trước. Nó có thể được sử dụng để gọi (gọi) một phương thức với một đối tượng chủ sở hữu làm đối số (tham số). Với call (), một đối tượng có thể sử dụng một phương thức thuộc về một đối tượng khác.call() method is a predefined JavaScript method. It can be used to invoke (call) a method with an owner object as an argument (parameter). With call() , an object can use a method belonging to another object.
Làm thế nào để bạn viết một hàm trong một chuỗi?Một cách tốt hơn để tạo một hàm từ một chuỗi là bằng cách sử dụng hàm: var fn = function ("alert ('xin chào')");fn ();Điều này có lợi thế / nhược điểm mà các biến trong phạm vi hiện tại (nếu không toàn cầu) không áp dụng cho hàm mới được xây dựng.var fn = Function("alert('hello there')"); fn(); This has as advantage / disadvantage that variables in the current scope (if not global) do not apply to the newly constructed function.
Hàm () () trong javascript là gì?Một hàm trong JavaScript tương tự như một thủ tục, một tập hợp các câu lệnh thực hiện một tác vụ hoặc tính toán một giá trị, nhưng đối với một quy trình để đủ điều kiện làm chức năng, nó sẽ lấy một số đầu vào và trả về một đầu ra trong đó có một số mối quan hệ rõ ràng giữađầu vào và đầu ra.a set of statements that performs a task or calculates a value, but for a procedure to qualify as a function, it should take some input and return an output where there is some obvious relationship between the input and the output.
Chúng ta có thể gọi chức năng trong chức năng trong JavaScript không?Để gọi một hàm bên trong một hàm khác, hãy xác định hàm bên trong hàm bên ngoài và gọi nó.Khi sử dụng từ khóa chức năng, hàm được nâng lên trên cùng của phạm vi và có thể được gọi từ bất cứ nơi nào bên trong hàm bên ngoài.define the inner function inside the outer function and invoke it. When using the function keyword, the function gets hoisted to the top of the scope and can be called from anywhere inside of the outer function. |