Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript';这';功能中未定义的警报_Javascript_Function - Fatal编程技术网

javascript';这';功能中未定义的警报

javascript';这';功能中未定义的警报,javascript,function,Javascript,Function,我与“this”操作员有问题 Q: function xyz(){ var b=10; alert(this.b); //value is undefined. } 在这里,我知道我将得到警告,因为未定义。但我不知道为什么值是未定义的 有人能帮我吗 此引用函数运行时使用的上下文 b不是该上下文的一部分 如果要将其添加到此处: function xyz(){ this.b = 10; alert(this.b); //value is 10. } 此引用函数运行时使用的上下文 b不是该

我与“this”操作员有问题

Q:

function xyz(){
 var b=10;
 alert(this.b); //value is undefined.
}
在这里,我知道我将得到警告,因为
未定义
。但我不知道为什么值是未定义的


有人能帮我吗

引用函数运行时使用的上下文

b
不是该上下文的一部分

如果要将其添加到此处:

function xyz(){
 this.b = 10;
 alert(this.b); //value is 10.
}

引用函数运行时使用的上下文

b
不是该上下文的一部分

如果要将其添加到此处:

function xyz(){
 this.b = 10;
 alert(this.b); //value is 10.
}

您不能将此属性用于示例。 您将b指定为函数中的变量,因此它在该函数的范围内。因此,您只需要执行以下操作

function xyz(){
 var b=10;
 alert(b); //value is undefined.
}

您不能将此属性用于示例。 您将b指定为函数中的变量,因此它在该函数的范围内。因此,您只需要执行以下操作

function xyz(){
 var b=10;
 alert(b); //value is undefined.
}

因为
b
是一个局部变量,可以作为
b
访问(而不是
this.b
在此上下文中引用的是
窗口,其属性是全局变量。

因为
b
是一个局部变量,可以作为
b
访问(而不是
This.b
在此上下文中引用的是属性为全局变量的
窗口。

本例中的函数为“This”,函数没有属性“b”。如果代码中的其他地方有一个对象,请将其指向该对象

var obj = {
    b = 5
}

function xyz(){
     obj.b = 10;
     alert(obj.b)
}

本例中的函数为“this”,该函数不具有属性“b”。如果代码中的其他地方有一个对象,请将其指向该对象

var obj = {
    b = 5
}

function xyz(){
     obj.b = 10;
     alert(obj.b)
}

该值未定义,因为
此.b
不存在。为什么会这样?尝试将b添加为参数,并移除“var”关键字函数xyz(b){}
指的是
窗口
,该窗口是一个全局对象,没有定义
b
变量。如果要获取警报,只需执行
b=10
。该值未定义,因为
此.b
不存在。为什么会这样?请尝试将b添加为参数,并删除“var”关键字函数xyz(b){}
引用了作为全局对象的
窗口
,没有定义
b
变量。如果您想获得警报,只需执行
b=10
。实际上我们甚至不知道
这个
指的是
窗口,因为我们看不到呼叫站点。例如,发问者可以发出
new xyz()
xyz.call(某物)
。实际上我们甚至不知道
这个
指的是
窗口,因为我们看不到呼叫站点。例如,提问者可以发出
new xyz()
xyz.call(某物)