Javascript数组函数参数传递
我在看javascript教程,有些语法我不懂。他在教增强对象属性,我不明白接下来的两件事: 您可以看到,他创建了一个具有值PRICE的变量pricePropName。为什么他设定了价值价格,为什么它是大写的,在两个引号之间?数组PricePropName.toLowerCase后面的两个点是什么?为什么他在数组之后以这种方式传递变量? 很抱歉这个noob风格的问题,但我在任何地方都找不到,我想理解它 守则:Javascript数组函数参数传递,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我在看javascript教程,有些语法我不懂。他在教增强对象属性,我不明白接下来的两件事: 您可以看到,他创建了一个具有值PRICE的变量pricePropName。为什么他设定了价值价格,为什么它是大写的,在两个引号之间?数组PricePropName.toLowerCase后面的两个点是什么?为什么他在数组之后以这种方式传递变量? 很抱歉这个noob风格的问题,但我在任何地方都找不到,我想理解它 守则: const pricePropName = "PRICE"; c
const pricePropName = "PRICE";
const calculator = (name, price) => {
return {
name,
add(n1, n2) {
return n1 + n2;
},
[pricePropName.toLowerCase()] : price;
}
}
const calc = calculator('casio', 19.99);
log(calc.name);
log(calc.add(20, 20));
log(calc.price);
您基本上可以通过两种不同的方式调用/定义对象属性 下面是一个示例,介绍了如何以不同的方式执行此操作,所有这些方法都是相同的: 康斯特城市=弗罗茨瓦夫 const国家=波兰 常量示例={ 姓名:鲍勃, ['lastName']:史密斯, [年龄]:24, 城市 国家:国家 } console.logexample 为什么他设定了价值价格,为什么它是大写的,在两个引号之间 他只是声明了一个名为pricePropName的字符串,其值为PRICE。这两个引号正好标记了如何声明字符串文字。至于为什么它是大写的,没有特别的原因,但也许他可以稍后调用toLowerCase方法。有关字符串的详细信息: 那两个点是什么 在这里,他声明了一个对象文本。一个对象是一个键值对,因此:之前的任何内容都是键或如何访问值,而:之后的任何内容都是您访问的值 因此,如果我声明这样一个对象:
const obj = {
"one": 1
}
const one = 1;
const obj = {
one
}
我有一个对象,obj,有一个键,一个和一个相关的值,1。要访问该值,我可以执行obj.one或obj[one]
对象中的键始终是字符串,但不必将它们括在引号中。我可以用同样的方式声明上一个对象,如下所示:
const obj = {
one: 1
}
在现代javascript中,有一种简写方式,如果您有一个变量并将其添加到对象文本中,如果您想使用变量的名称作为键,则不需要声明键。因此,我也可以这样声明前面的对象:
const obj = {
"one": 1
}
const one = 1;
const obj = {
one
}
最后要了解的是[pricePropName.toLowerCase]周围的方括号。因为他在这里调用的方法是小写的,所以他通常不能将其用作对象键,但是通过将其包装为[],这有点像说这样做,并将结果用作键
语法有点笨拙,所以我不推荐使用它——为了可读性,将其分解成一个变量要清楚得多
因此,最后:
const calculator = (name, price) => {
return {
name,
add(n1, n2) {
return n1 + n2;
},
[pricePropName.toLowerCase()] : price;
}
}
是一个名为calculator的函数,它接受两个参数name和price,并返回一个包含3个键/值属性的对象文字:
名称,在本例中指的是卡西欧
add,它指的是一个函数,该函数将添加2个数字并返回结果
价格,在本例中为19.99
最后一个对象将如下所示:
{
"name": "casio",
"add": function(n1, n2) {
return n1 + n2
},
"price": 19.99
}