Hướng dẫn can you call a function in a variable javascript? - bạn có thể gọi một hàm trong một biến javascript không?

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.

Trả lời 5025CBC585E09D00020488B2

0 phiếu bầu

Permalink

Sau khi khai báo một biến hoặc chức năng với từ khóa var, bạn có thể gọi nó bất cứ lúc nào bằng cách gọi tên của nó.

Variable:

var name = "Eric";
name; // => 'Eric'

Function:

var printName = function(name){
    console.log(name);
}
printName("Eric"); // prints 'Eric' to the console

điểm

Hướng dẫn can you call a function in a variable javascript? - bạn có thể gọi một hàm trong một biến javascript không?

Gửi bởi Eric Weinstein

khoảng 10 năm


Làm thế nào để bạn gọi một hàm bên trong một biến trong JavaScript?

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; };


Bạn có thể gán một hàm cho một biến trong JavaScript không?

Bạn có thể làm việc với các chức năng như thể chúng là đối tượng. Ví dụ: bạn có thể gán các hàm cho các biến, cho các thành phần mảng và cho các đối tượng khác. Chúng cũng có thể được truyền xung quanh như là đối số cho các chức năng khác hoặc được trả lại từ các chức năng đó. Sự khác biệt duy nhất với các đối tượng là các chức năng có thể được gọi.

Tôi có thể gọi một chức năng trong JavaScript không?

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.

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"}
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}

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

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:person object.

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"} means the firstName property of this.

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

Phương thức gọi () với các đối số means the firstName property of person.


Phương thức call() có thể chấp nhận các đối số:this?

const person = {& nbsp; fullName: function (thành phố, quốc gia) {& nbsp; & nbsp; & nbsp; trả về this.firstname + "" + this.lastName + "," + city + "," + quốc gia; & nbsp; }}object.

const person1 = {& nbsp; & nbsp; firstName: "john", & nbsp; & nbsp; lastName: "doe"} object depends on how

var name = "Eric";
name; // => 'Eric'
0 is being invoked (used or called).

person.fullname.call (person1, "oslo", "norway");

Làm thế nào để bạn gọi một hàm bên trong một biến trong JavaScript?object.
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; };global object.
Bạn có thể gán một hàm cho một biến trong JavaScript không?global object.
Bạn có thể làm việc với các chức năng như thể chúng là đối tượng. Ví dụ: bạn có thể gán các hàm cho các biến, cho các thành phần mảng và cho các đối tượng khác. Chúng cũng có thể được truyền xung quanh như là đối số cho các chức năng khác hoặc được trả lại từ các chức năng đó. Sự khác biệt duy nhất với các đối tượng là các chức năng có thể được gọi.
Trong một sự kiện,
var name = "Eric";
name; // => 'Eric'
0 đề 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(),
var printName = function(name){
    console.log(name);
}
printName("Eric"); // prints 'Eric' to the console
1 và
var printName = function(name){
    console.log(name);
}
printName("Eric"); // prints 'Eric' to the console
2 có thể giới thiệu
var name = "Eric";
name; // => 'Eric'
0 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; 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"}
  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 "Mary Doe" person.fullname.call (person2);
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:

Thí dụ

Thí dụ

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"}
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}

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

Phương thức gọi () với các đối số

Hãy tự mình thử »



Làm thế nào để bạn gọi một hàm bên trong một biến trong JavaScript?

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; };var multiplyTwo = function (a) { return a * 2; };

Bạn có thể gán một hàm cho một biến trong JavaScript không?

Bạn có thể làm việc với các chức năng như thể chúng là đối tượng.Ví dụ: bạn có thể gán các hàm cho các biến, cho các thành phần mảng và cho các đối tượng khác.Chúng cũng có thể được truyền xung quanh như là đối số cho các chức năng khác hoặc được trả lại từ các chức năng đó.Sự khác biệt duy nhất với các đối tượng là các chức năng có thể được gọi.you can assign functions to variables, to array elements, and to other objects. They can also be passed around as arguments to other functions or be returned from those functions. The only difference with objects is that functions can be called.

Tôi có thể gọi một chức năng trong JavaScript không?

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.. 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 gán một hàm cho một biến?

Phương pháp 1: Gán đối tượng hàm cho tên biến mới Một cách đơn giản để hoàn thành tác vụ là tạo tên biến mới G và gán đối tượng hàm f cho biến mới với câu lệnh f = g.create a new variable name g and assign the function object f to the new variable with the statement f = g.