请多多指教,因为我是javascript新手。我下面有示例1和2,我想知道为什么当使用关键字“ return”时示例2不能显示正确的预期结果。我知道加号(+)可以解决有问题的问题,只是想知道何时在变量中使用逗号(,)在javascript中进行级联。
sample-1
var person = {
firstName: "John",
lastName : "Smith",
fullName : function() {
console.log("my name is ",this.firstName +" ",this.lastName);
}
}
person.fullName(); //my name is John Smith
sample-2
var person = {
firstName: "John",
lastName : "Smith",
fullName : function() {
return "my name is ",this.firstName +" ",this.lastName;
}
}
person.fullName(); //"Smith"
答案 0 :(得分:1)
使用
console.log("my name is ",this.firstName +" ",this.lastName);
您将几个参数传递给console.log
函数。它就像任何普通函数调用一样工作。 console.log
的参数数目或多或少是任意的,该函数将知道如何处理它们(有点像Math.max
)。
那个
return "my name is ",this.firstName +" ",this.lastName;
不返回多个值(看起来它将返回this.lastName
)。函数可以返回单个值,也可以根本不返回任何值。您想将以上内容合并为一个字符串,则必须以其他方式进行处理。例如,使用+
。
答案 1 :(得分:0)
逗号内部标记函数调用的括号将参数表达式分隔开。在外面,就像您的import concurrent.futures
import time
import random
def register_with_delay():
time.sleep(random.randint(0, 10))
print('Im in the delayed registration')
def main():
with concurrent.futures.ProcessPoolExecutor() as executor:
futures = [executor.submit(register_with_delay) for _ in range(10)]
for i in range(10):
print('Im in the main loop')
time.sleep(random.randint(0, 1))
if __name__ == '__main__':
main()
语句中一样,它们是“逗号运算符”。
return
的神奇之处仅在于该函数中的代码,该代码显式地查看传递给它的所有参数。
console.log()
基本上等同于
return
样本中的逗号将整个表达式分成三部分,每部分都分别进行评估。 "my name is ";
this.firstName + " ";
return this.lastName;
的总价值就是a, b, c
的价值。