var
tạo biến cục bộ trong phạm vi tools.triangle
. Các biến số originX
và originY
không thể tương tác với bên ngoài tools.triangle
. this
là một con trỏ đến đối tượng hiện tại bạn đang xử lý. Ví dụ thứ hai có thể được sử dụng để cung cấp các thuộc tính cho một đối tượng bằng cách thực hiện new tools.triangle();
. Nếu bạn không sử dụng new
và chỉ sử dụng tools.triangle();
, this
sẽ trỏ đối tượng chung là đối tượng window
. Bạn có thể thay đổi đối tượng mà this
điểm bằng cách sử dụng các phương pháp chức năng call();
và apply();
như thế này:
var myObj = {};
tools.triangle.call(myObj);
// "this" in tools.triangle now points to myObj
// myObj now has the properties originX and originY
Điều quan trọng là phải biết rằng this
có thể tham khảo bất kỳ đối tượng, cũng như không được định nghĩa hoặc null
trong chế độ nghiêm ngặt ES5 .
Bạn có thể tìm thêm thông tin here.
Biến 'var' là riêng tư. Biến 'this' này là công khai. – elclanrs
@ elclanrs — nhận xét đó không hữu ích vì nó gây hiểu nhầm. Các biến có thể được khai báo là globals, 'this' có liên quan đến bối cảnh thực thi, nó không phải là một biến theo nghĩa thông thường, mặc dù nó có thể được coi là một biến cục bộ. – RobG