Gọi hàm JavaScript từ Python

Trong hướng dẫn này, chúng tôi sẽ sử dụng hàm gọi, bởi vì một hàm JavaScript có thể được gọi mà không cần gọi


Gọi một hàm dưới dạng một hàm

Thí dụ

function myFunction(a, b) {
  return a * b;
}
myFunction(10,

Tự mình thử »

Hàm trên không thuộc bất kỳ đối tượng nào. Nhưng trong JavaScript luôn có một đối tượng toàn cầu mặc định

Trong HTML, đối tượng toàn cầu mặc định là chính trang HTML, vì vậy chức năng trên "thuộc về" trang HTML

Trong trình duyệt, đối tượng trang là cửa sổ trình duyệt. Hàm trên tự động trở thành hàm cửa sổ

Ghi chú

Đây là cách phổ biến để gọi một hàm JavaScript, nhưng không phải là một cách thực hành tốt.
Các biến, phương thức hoặc hàm toàn cục có thể dễ dàng tạo ra xung đột tên và lỗi trong đối tượng toàn cục.

myFunction() và cửa sổ. myFunction() là chức năng tương tự

Thí dụ

function myFunction(a, b) {
  return a * b;
}
cửa sổ. myFunction(10, 2);

Tự mình thử »


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

Trong JavaScript, từ khóa this dùng để chỉ một đối tượng

Đối tượng nào phụ thuộc vào cách this đang được gọi (được sử dụng hoặc được gọi)

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

Trong một phương thức đối tượng, this đề cập đến đối tượng. Một mình, this đề cập đến đối tượng toàn cầu. Trong một hàm, this đề cập đến đối tượng toàn cầu. Trong một hàm, ở chế độ nghiêm ngặt, thisundefined. Trong một sự kiện, this đề cập đến phần tử đã nhận được sự kiện. Các phương thức như this0, this1 và this2 có thể tham chiếu this tới bất kỳ đối tượng nào

Đối tượng Toàn cầu

Khi một hàm được gọi mà không có đối tượng chủ sở hữu, giá trị của this sẽ trở thành đối tượng toàn cục

Trong trình duyệt web, đối tượng chung là cửa sổ trình duyệt

Ví dụ này trả về đối tượng cửa sổ dưới dạng giá trị của this

Thí dụ

để x = myFunction();

function myFunction() {
  return cái này;
}

Tự mình thử »

Gọi một hàm dưới dạng hàm toàn cục, khiến giá trị của this trở thành đối tượng toàn cục.
Việc sử dụng đối tượng cửa sổ làm biến có thể dễ dàng làm hỏng chương trình của bạn.


Gọi một hàm như một phương thức

Trong JavaScript, bạn có thể định nghĩa hàm là phương thức đối tượng

Ví dụ sau tạo một đối tượng (myObject), với hai thuộc tính (firstName và lastName) và một phương thức (fullName)

Thí dụ

const myObject = {
  firstName. "John",
  họ. "Doe",
  họ và tên. hàm () {
    trả lại cái này. FirstName + " " + cái này. họ;
  }
}
myObject. Họ và tên();

Tự mình thử »

Phương thức fullName là một hàm. Chức năng thuộc về đối tượng. myObject là chủ sở hữu của chức năng

Thứ được gọi là this, là đối tượng "sở hữu" mã JavaScript. Trong trường hợp này, giá trị của this là myObject

kiểm tra nó. Thay đổi phương thức fullName để trả về giá trị của this

Thí dụ

const myObject = {
  firstName. "John",
  họ. "Doe",
  họ và tên. function () {
    trả lại cái này;
  }
}

// Điều này sẽ trả về [object Object] (đối tượng chủ sở hữu)
myObject. họ tên();

Tự mình thử »

Gọi một hàm như một phương thức đối tượng, làm cho giá trị của this trở thành chính đối tượng đó


Gọi một hàm với Hàm tạo hàm

Nếu một lời gọi hàm được bắt đầu bằng từ khóa this0, thì đó là một lời gọi hàm tạo

Có vẻ như bạn tạo một hàm mới, nhưng vì các hàm JavaScript là các đối tượng nên bạn thực sự tạo một đối tượng mới

Thí dụ

// Đây là hàm tạo.
function myFunction(arg1, arg2) {
  cái này. firstName = arg1;
  this. họ  = arg2;
}

// Thao tác này tạo đối tượng mới
const myObj = new myFunction("John", "Doe");

// Điều này sẽ trả về "John"
myObj. FirstName;

Tự mình thử »

Một lời gọi hàm tạo tạo một đối tượng mới. Đối tượng mới kế thừa các thuộc tính và phương thức từ hàm tạo của nó

Chúng ta có thể thực thi một hàm JavaScript trong Python với Selenium webdriver. DOM tương tác với các phần tử thông qua JavaScript. Selenium có khả năng thực thi các lệnh JavaScript với phương thức exec_script

Một số hành động như cuộn web không thể được thực hiện trực tiếp bởi Selenium. Đối với điều này, chúng ta sẽ sử dụng JavaScript Executor. Chúng ta sẽ nhờ sự trợ giúp của cửa sổ lệnh JavaScript. scrollTo và chuyển nó vào phương thức exec_script. Để cuộn xuống cuối trang, chúng ta phải vượt qua 0 và tài liệu. thân hình. scrollHeight làm tham số cho cửa sổ. cuộn tới

cú pháp

driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")

Thí dụ

from selenium import webdriver
driver = webdriver.Firefox(executable_path="C:\geckodriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://www.tutorialspoint.com/index.htm")
#scroll till page bottom
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);)

Chúng tôi cũng có thể thực hiện hành động trên web như nhấp vào liên kết bằng JavaScript. Ở đây, chúng ta cũng sẽ sử dụng phương thức exec_script và truyền các đối số với chỉ mục và phần tử làm tham số cho phương thức đó

Bạn có thể gọi một hàm JavaScript từ Python không?

Gọi JavaScript từ Python . Đây là một ví dụ hoàn chỉnh mà bạn có thể sao chép và dán vào tệp cục bộ và tải vào trình duyệt. import the module js and call JavaScript functions using the js namespace. This is a complete example that you can copy and paste into a local file and load into the browser.

Tôi có thể sử dụng JavaScript và Python cùng nhau không?

Bạn có thể kết hợp JavaScript và Python mà không cần sử dụng cơ sở dữ liệu hoặc phát triển cấu trúc API rườm rà để nâng cao hiệu quả phát triển .

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 thủ tục .