为什么用Java引号引起来的加号?

时间:2018-11-12 03:19:59

标签: javascript string

我偶然发现了一些我无法完全理解的东西。假设有一个产品对象:

let product = {
  img: "../image.jpg"
}

现在,如果要访问URL中的product.img,可以执行以下操作:

const getProductImage = product => ({
  backgroundImage: 'url(' + product.img +')'
});

我的问题是:这是怎么回事?:

' + product.img + '

编辑:好的,这个问题是从错误的前提开始的,请参见下面的答案。

3 个答案:

答案 0 :(得分:3)

有两组引号:

'url('

')'

不是

' + product.img + '

答案 1 :(得分:1)

您的代码只是将字符串加在一起,所以结果是串联的新字符串:

'url(' + product.img +')'. 

例如,如果product.img包含图片的网址,例如:'http:example.com/image1.png',则backgroundimage最终将包含:

'url(http:example.com/image1.png)';

答案 2 :(得分:1)

因为这是将字符串从变量连接为单个字符串的方式。 可以将其重写如下:

let first = 'url('
let last = ')'
let final_string = first + product.img + last

或使用模板文字(在可能的情况下更好)

`url(${product.img})`