Trong Javascript, việc sử dụng a.b(c)
hoặc [a.b][0](c)
lý do khác là ràng buộc this
đối tượng a
hoặc không trong khi thực thi mã số a.b
.Có đảm bảo rằng `Math.cos (0) === [Math.cos] [0] (0)`?
Tiếp theo lập luận tương tự sử dụng
var z = Math.cos;
console.log(z(1));
thể về mặt lý thuyết là khác nhau từ console.log(Math.cos(1))
nhưng không có vẻ như vậy trong thực tế.
Câu hỏi đặt ra là: là nó đảm bảo theo tiêu chuẩn đó cho các đối tượng được xác định trước như Math
, Symbol
hoặc Object
bối cảnh this
là không thích hợp trong việc thực hiện phù hợp?
Với Math
câu hỏi có vẻ ngớ ngẩn, vì dường như không có lý do gì phụ thuộc vào ngữ cảnh ... tuy nhiên, ví dụ: Symbol.for
là hợp lý để giả định rằng triển khai có thể lưu trữ bảng ký hiệu toàn cầu trong một thành viên đối tượng và trong trường hợp đó sử dụng [Symbol.for][0]("x")
sẽ không hoạt động.
Symbol.for
thực sự dường như làm việc tốt mà không có bối cảnh trong nút, chrome và firefox, nhưng tôi tự hỏi nếu điều này được đảm bảo hay chỉ là ngẫu nhiên ...
Câu hỏi của bạn dường như giả định rằng đối với thư viện 'Toán' ngữ cảnh' này' có ảnh hưởng đến kết quả, tôi không chắc chắn lý do tại sao Thư viện toán sẽ làm bất cứ điều gì với ngữ cảnh 'này'. Vậy tại sao điều này lại là hậu quả của bạn? – Icepickle
@Icepickle Loại câu hỏi gì vậy? – melpomene
Ràng buộc'this' ảnh hưởng như thế nào đến giá trị trả về của hàm toán học tích hợp js? – chiliNUT