Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/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 - Fatal编程技术网

Javascript 如何';这';关键词有效吗?

Javascript 如何';这';关键词有效吗?,javascript,Javascript,我不明白bob.setAge=setAge在做什么。有人能解释它是如何工作的吗 var bob = { name: "Bob Smith", age: 15 }; var frank = { name: "Frank Wolf", age: 32 }; function setAge(newAge) { this.age = newAge; } bob.setAge = setAge; bob.setAge(23); 此的值将在函数调用期间确定。所

我不明白bob.setAge=setAge在做什么。有人能解释它是如何工作的吗

var bob = {
    name: "Bob Smith",
    age: 15
};

var frank = {
    name: "Frank Wolf",
    age: 32
};

function setAge(newAge) {
    this.age = newAge;
}

bob.setAge = setAge;
bob.setAge(23);

的值将在函数调用期间确定。所以,当你像这样用
bob
调用它时

bob.setAge(23);
setAge(10);
设置
内,
将引用
bob
。因此,
23
将被分配给
bob
age
属性

您可以将该函数动态附加到任何对象并调用
setAge
。比如说,

frank.setAge = setAge;
frank.setAge(26);
frank
age
设置为
26

注意:如果您只需在没有任何对象的情况下调用
设置
函数,如下所示

bob.setAge(23);
setAge(10);

然后JavaScript将确保
this
将引用全局对象。但如果在脚本模式下执行此操作,
将设置为
未定义
,并且
设置将失败。因为您不能在
未定义的
上设置
年龄

的值将在调用函数时确定。所以,当你像这样用
bob
调用它时

bob.setAge(23);
setAge(10);
设置
内,
将引用
bob
。因此,
23
将被分配给
bob
age
属性

您可以将该函数动态附加到任何对象并调用
setAge
。比如说,

frank.setAge = setAge;
frank.setAge(26);
frank
age
设置为
26

注意:如果您只需在没有任何对象的情况下调用
设置
函数,如下所示

bob.setAge(23);
setAge(10);

然后JavaScript将确保
this
将引用全局对象。但如果在脚本模式下执行此操作,
将设置为
未定义
,并且
设置将失败。因为,您不能在
未定义的
上设置
年龄

bob.setAge=setAge
-->
bob.setAge
(类似于参考变量)现在将引用
setAge
函数,以便在从bob对象调用它时,可以像调用
bob.setAge(23)
一样调用它<代码>此
将指
bob
内部的
setAge
功能

bob.setAge=setAge
-->
bob.setAge
(类似于参考变量)现在将引用
setAge
函数,以便在从bob对象调用它时,可以像调用
bob.setAge(23)
一样调用它<代码>此
将指
bob
内部的
设置
功能

基本上设置只是一个功能。这可能会改变财产年限的价值

你做的那些

bob.setAge = setAge;.
将方法集添加到对象bob,该方法集现在将改变bob的年龄值

现在调用bob.setAge(23)


年龄从15岁变为23岁。

基本上,设置年龄只是一个函数。这可能会改变财产年限的价值

你做的那些

bob.setAge = setAge;.
将方法集添加到对象bob,该方法集现在将改变bob的年龄值

现在调用bob.setAge(23)


年龄从15变为23。

当您使用调试器并在调试器命中之前和之后运行代码并检查这些值时,您会看到什么?当您使用调试器并在调试器命中之前和之后运行代码并检查这些值时,您会看到什么,请让我知道这个答案有什么问题。什么是脚本模式?Downvoter,请让我知道这个答案有什么问题。什么是脚本模式?