2017-02-23 224 views
0

在java腳本中,當我們創建一個新的構造函數時,我們使用「this.property name」。我們使用「this」來引用當前正在使用的對象。但是在一般函數中,我們不使用「this」關鍵字。根據我的理解,如果我們在函數中使用「this」,它應該指向當前函數。但是,當我們使用它時,並沒有產生預期的結果。爲什麼?示例爲什麼「這個」不起作用?

function greet(name){console.log(「Hello」+ this.name); }

輸出是「你好」然後空白。

+1

您的代碼是哪裏? –

+0

用'new'關鍵字調用任何函數,函數內的'this'將引用一個新構建的對象 – Igor

+0

您的代碼片段在哪裏,因此我們可以連擊以幫助正確的方向@PiyaliGhosh –

回答

0

因爲在一般函數中,我們默認引用'window'對象,所以我們所做的任何事情都會變成窗口級別的對象或變量。

一樣,

function fun(){ 
this.title = "window"; 
} 

fun(); 

window.fun(); //兩者相同。由於我們調用window.fun,this.title表示window.fun。

如果你創建這樣的:

VAR OBJ = {}

**我們做標題的obj級別,你可以這樣做:

fun.call(obj); 

現在,您可以調用obj.title。**

+0

謝謝。我把這個改成了window.this。現在它工作正常。 –

+0

@Igor,對不起,我不明白你的意見。 –

0

閱讀thisthis

在大多數情況下,this值由一個函數是如何被調用來確定。