![](/img/trans.png)
[英]In JavaScript, what is the difference between var a=5. and var a=5?
[英]Difference between var and this in Javascript functions?
var tools = {};
tools.triangle = function() {
var originX = 0;
var originY = 0;
}
var tools = {};
tools.triangle = function() {
this.originX = 0;
this.originY = 0;
}
這兩個代碼塊之間有什么區別嗎? 抱歉,如果之前已經問過這個問題。
var
在tools.triangle
創建一個局部變量。 變量originX
和originY
不能在tools.triangle
之外與外部tools.triangle
。 this
是指向您正在處理的當前對象的指針。 第二個示例可用於通過執行new tools.triangle();
為對象賦予屬性new tools.triangle();
. 如果你不使用new
而只是使用tools.triangle();
, this
將指向全局對象,即window
對象。 您可以使用函數方法call();
更改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
可以引用任何對象,也可以在 ES5 嚴格模式下為 undefined 或null
。
您可以在此處找到更多信息。
在第一個例子中,X 和 Y 都作為局部變量存在於變量triangle
保存的閉包中。
在第二個示例中,由於使用了this
,X 和 Y 作為對象tools.triangle
變量存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.