2017-02-23 132 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值由一个函数是如何被调用来确定。