Ответ 1
var
создает локальную переменную в tools.triangle
. Переменные originX
и originY
не могут взаимодействовать вне tools.triangle
. this
- это указатель на текущий объект, с которым вы имеете дело. Второй пример можно использовать для задания свойств объекта, выполнив new tools.triangle();
. Если вы не используете new
и просто используйте tools.triangle();
, this
укажет глобальный объект, который является объектом window
. Вы можете изменить объект, на который this
указывает, используя методы функции call();
и apply();
:
var myObj = {};
tools.triangle.call( myObj );
// "this" in tools.triangle now points to myObj
// myObj now has the properties originX and originY
Важно знать, что this
может ссылаться на любой объект, а также undefined или null
в строгом режиме ES5.
Вы можете найти дополнительную информацию здесь.