Tôi tìm thấy một giá trị bất ngờ của từ khóa này trong ví dụ sau:
let x = {
z : 10 ,
get func1() {
return function(v) {
console.log(this === v);
}
}
}
x.func1(x)
Giá trị của này từ khóa là đối tượng x là nếu nó được thực hiện từ đối tượng đó, tôi hy vọng chỉ có chức năng get có này từ khóa tương đương với các đối tượng gọi x
ví dụ này cho chúng ta thấy sự khác biệt
let x = {
func2() {
return function(v) {
console.log(this === v);
}
}
}
x.func2()(x);
Trong cả hai ví dụ func1 là hàm getter và func2 là một phương thức của đối tượng, được thực thi từ đối tượng x và sau đó hàm trả về sẽ được thực thi. Vậy tại sao giá trị này trong ví dụ đầu tiên không bằng đối tượng toàn cầu thay vì đối tượng x .
x.func1()
.