在Javascript函数中var和this之间的区别?

Rya*_*hel 14 javascript syntax

var tools = {};

tools.triangle = function() {
    var originX = 0;
    var originY = 0;
}
Run Code Online (Sandbox Code Playgroud)

 

var tools = {};

tools.triangle = function() {
    this.originX = 0;
    this.originY = 0;
}
Run Code Online (Sandbox Code Playgroud)

这两个代码块之间有什么区别吗?对不起,如果之前有人询问过.

0x4*_*2D2 11

var在其中创建局部变量tools.triangle.变量originXoriginY不能与外界相互作用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
Run Code Online (Sandbox Code Playgroud)

重要的是要知道this可以引用任何对象,以及未定义或null在ES5严格模式下.

您可以在此处找到更多信息.