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,
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];
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
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, this
là undefined
. 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ư this
0, this
1 và this
2 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;
}
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[];
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[];
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 this
0, 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;
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["//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 đó