Hướng dẫn how to call a function using variable in javascript? - làm thế nào để gọi một hàm bằng cách sử dụng biến trong javascript?

Chắc chắn tránh sử dụng eval để làm một cái gì đó như thế này, hoặc bạn sẽ mở ra các lỗ hổng XSS (kịch bản chéo trang).

Ví dụ: nếu bạn sử dụng các giải pháp eval được đề xuất ở đây, một người dùng bất chính có thể gửi một liên kết đến nạn nhân của họ trông như thế này:

http://yoursite.com/foo.html?func=function(){alert('Im%20In%20Teh%20Codez');}

Và JavaScript của họ, không phải của bạn, sẽ được thực thi. Mã này có thể làm một cái gì đó tồi tệ hơn nhiều so với chỉ bật lên một cảnh báo; Nó có thể ăn cắp cookie, gửi yêu cầu đến ứng dụng của bạn, v.v.

Vì vậy, hãy chắc chắn rằng bạn không bao giờ eval mã không đáng tin cậy xuất phát từ đầu vào của người dùng (và bất cứ điều gì trên ID chuỗi truy vấn được coi là đầu vào của người dùng). Bạn có thể lấy đầu vào của người dùng làm khóa sẽ trỏ đến chức năng của mình, nhưng đảm bảo rằng bạn không thực thi bất cứ điều gì nếu chuỗi đưa ra không khớp với một khóa trong đối tượng của bạn. Ví dụ:

// set up the possible functions:
var myFuncs = {
  func1: function () { alert('Function 1'); },
  func2: function () { alert('Function 2'); },
  func3: function () { alert('Function 3'); },
  func4: function () { alert('Function 4'); },
  func5: function () { alert('Function 5'); }
};
// execute the one specified in the 'funcToRun' variable:
myFuncs[funcToRun]();

Điều này sẽ thất bại nếu biến funcToRun không trỏ đến bất cứ điều gì trong đối tượng myFuncs, nhưng nó sẽ không thực thi bất kỳ mã nào.


Có hai phương thức để gọi một hàm từ chuỗi được lưu trữ trong một biến. Phương pháp eval () cũ hơn và nó không được dùng.

Làm thế nào để bạn gọi một hàm được gán cho một biến trong JavaScript?


Cú pháp. Người dùng có thể theo dõi cú pháp dưới đây để viết biểu thức cho hàm mũi tên. Biến const = (tham số của Google) => {// Chức năng cơ thể} Biến (tham số); // Gọi hàm mũi tên.

Bạn có thể gọi một chức năng trong một biến không?

Chúng tôi đặt hàm vào một biến nếu bên trong khối hàm, chúng tôi sử dụng phương thức trả về: var multytwo = function (a) {return a * 2; }; Nếu chúng ta chỉ cần gọi chức năng này, sẽ không có gì được in, mặc dù không có gì sai với việc viết của chính chức năng.

Ví dụ dưới đây tạo ra một đối tượng với 3 thuộc tính, tên FirstName, lastName, fullName.

Thí dụ

const person = {& nbsp; & nbsp; firstName: "john", & nbsp; & nbsp; lastName: "doe", & nbsp; fullName: function () {& nbsp; & nbsp; & nbsp; Trả về this.FirstName + "" + this.lastName; & nbsp; & nbsp;}}
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}

// Điều này sẽ trả lại "John Doe": person.fullname ();
person.fullName();

Hãy tự mình thử »

Trong ví dụ trên, this đề cập đến đối tượng người.person object.

this.firstName có nghĩa là thuộc tính đầu tiên của điều này. means the firstName property of this.

Giống như:

this.firstName có nghĩa là thuộc tính đầu tiên của người. means the firstName property of person.


Cái này là cái gì?this?

Trong JavaScript, từ khóa this đề cập đến một đối tượng.object.

Đối tượng nào phụ thuộc vào cách this được gọi (được sử dụng hoặc gọi). object depends on how this is being invoked (used or called).

Từ khóa this đề cập đến các đối tượng khác nhau tùy thuộc vào cách sử dụng:

Trong một phương thức đối tượng, this đề cập đến đối tượng.object.
Một mình, this đề cập đến đối tượng toàn cầu.global object.
Trong một chức năng, this đề cập đến đối tượng toàn cầu.global object.
Trong một hàm, ở chế độ nghiêm ngặt, thiseval5.
Trong một sự kiện, this đề cập đến yếu tố đã nhận được sự kiện.element that received the event.
Các phương thức như call(), eval8 và eval9 có thể giới thiệu this cho bất kỳ đối tượng nào.any object.


Phương thức call () call call ()

Phương pháp call() là phương pháp 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.

Ví dụ này gọi phương thức FullName của người, sử dụng nó trên Person1:fullName method of person, using it on person1:

Thí dụ

const person = {& nbsp; & nbsp; fullName: function () {& nbsp; & nbsp; & nbsp; & nbsp; return this.firstName + "" + this.lastName; & nbsp; & nbsp;}} const person1 = {& nbsp; & nbsp; firstName: "john", & nbsp; Tên cuối cùng: "doe"} const person2 = {& nbsp; tên đầu tiên: "Mary", & nbsp; Tên cuối cùng: "doe"}
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
const person1 = {
  firstName:"John",
  lastName: "Doe"
}
const person2 = {
  firstName:"Mary",
  lastName: "Doe"
}

// Điều này sẽ trả lại "John Doe": person.fullname.call (person1);
person.fullName.call(person1);

Hãy tự mình thử »

Ví dụ này gọi phương thức FullName của người, sử dụng nó trên Person2:fullName method of person, using it on person2:

Thí dụ

const person = {& nbsp; & nbsp; fullName: function () {& nbsp; & nbsp; & nbsp; & nbsp; return this.firstName + "" + this.lastName; & nbsp; & nbsp;}} const person1 = {& nbsp; & nbsp; firstName: "john", & nbsp; Tên cuối cùng: "doe"} const person2 = {& nbsp; tên đầu tiên: "Mary", & nbsp; Tên cuối cùng: "doe"}
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
const person1 = {
  firstName:"John",
  lastName: "Doe"
}
const person2 = {
  firstName:"Mary",
  lastName: "Doe"
}

// Điều này sẽ trả lại "John Doe": person.fullname.call (person1);
person.fullName.call(person2);

Hãy tự mình thử »

Ví dụ này gọi phương thức FullName của người, sử dụng nó trên Person2:

const person = {& nbsp; fullName: function () {& nbsp; & nbsp; & nbsp; Trả về this.FirstName + "" + this.lastName; & nbsp; & nbsp;}} const person1 = {& nbsp; & nbsp; firstName: "john", & nbsp; Tên cuối cùng: "doe"} const person2 = {& nbsp; tên đầu tiên: "Mary", & nbsp; Tên cuối cùng: "doe"}

Thí dụ

const person = {& nbsp; & nbsp; fullName: function () {& nbsp; & nbsp; & nbsp; & nbsp; return this.firstName + "" + this.lastName; & nbsp; & nbsp;}} const person1 = {& nbsp; & nbsp; firstName: "john", & nbsp; Tên cuối cùng: "doe"} const person2 = {& nbsp; tên đầu tiên: "Mary", & nbsp; Tên cuối cùng: "doe"}
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}

// Điều này sẽ trả lại "John Doe": person.fullname.call (person1);
  firstName:"John",
  lastName: "Doe"
}

Hãy tự mình thử »

Hãy tự mình thử »



Bạn có thể gọi một chức năng trong một javascript biến không?

Có hai phương thức để gọi một hàm từ chuỗi được lưu trữ trong một biến. Phương pháp eval () cũ hơn và nó không được dùng. The first one is by using the window object method and the second one is by using eval() method. The eval() method is older and it is deprecated.

Làm thế nào để bạn gọi một hàm được gán cho một biến trong JavaScript?

Cú pháp. Người dùng có thể theo dõi cú pháp dưới đây để viết biểu thức cho hàm mũi tên. Biến const = (tham số của Google) => {// Chức năng cơ thể} Biến (tham số); // Gọi hàm mũi tên.const variable = ( … parameters ) => { // function body } Variable( parameters ); // invoke the arrow function.

Bạn có thể gọi một chức năng trong một biến không?

Chúng tôi đặt hàm vào một biến nếu bên trong khối hàm, chúng tôi sử dụng phương thức trả về: var multytwo = function (a) {return a * 2;};Nếu chúng ta chỉ cần gọi chức năng này, sẽ không có gì được in, mặc dù không có gì sai với việc viết của chính chức năng.: var multiplyTwo = function (a) { return a * 2; }; if we simply call this function, nothing will be printed, although nothing is wrong with the writing of the function itself.

Làm cách nào để gọi một chức năng trong JavaScript?

Gọi một hàm là một hàm: hàm myfunction (var) {return var;} myFunction (giá trị) ;.
Gọi một hàm như một phương thức: var myObject = {var: value, functionName: function () {return this.var;}} MyObject.Tên chức năng();.