Javascript数组函数参数传递

Javascript数组函数参数传递,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我在看javascript教程,有些语法我不懂。他在教增强对象属性,我不明白接下来的两件事: 您可以看到,他创建了一个具有值PRICE的变量pricePropName。为什么他设定了价值价格,为什么它是大写的,在两个引号之间?数组PricePropName.toLowerCase后面的两个点是什么?为什么他在数组之后以这种方式传递变量? 很抱歉这个noob风格的问题,但我在任何地方都找不到,我想理解它 守则: const pricePropName = "PRICE"; c

我在看javascript教程,有些语法我不懂。他在教增强对象属性,我不明白接下来的两件事: 您可以看到,他创建了一个具有值PRICE的变量pricePropName。为什么他设定了价值价格,为什么它是大写的,在两个引号之间?数组PricePropName.toLowerCase后面的两个点是什么?为什么他在数组之后以这种方式传递变量? 很抱歉这个noob风格的问题,但我在任何地方都找不到,我想理解它

守则:

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
}