引用 google 实例时 && 用法的说明
Explanation for && usage when referring to google instance
我正在使用 vue2-google-maps
模块,当需要从组件 prop 中引用 google 实例时遇到了以下语法。
scaledSize: google && new google.maps.Size(50, 50)
它是这样使用的:
<GmapMarker
:key="e.coordinates.lat + e.coordinates.lng"
v-for="e in poi"
:position="e.coordinates"
:icon="{
url: require(`@/assets/${e.icon}`),
scaledSize: google && new google.maps.Size(50, 50)
}"
/>
而google
是一个计算出来的属性。
import { gmapApi } from 'vue2-google-maps'
export default {
computed: {
google: gmapApi
}
}
google &&
是什么意思,为什么要在 new google.maps.Size(50, 50)
之前?
谢谢!
&&
称为 logical AND 运算符,在这种情况下它用于避免错误。 MDN 文档指出:
If expr1
can be converted to true
, returns expr2
; else, returns expr1
.
这意味着如果变量 google
未正确初始化,它将 return 虚假值而不是抛出异常(例如无法读取 属性 'maps' of undefined/null).
我正在使用 vue2-google-maps
模块,当需要从组件 prop 中引用 google 实例时遇到了以下语法。
scaledSize: google && new google.maps.Size(50, 50)
它是这样使用的:
<GmapMarker
:key="e.coordinates.lat + e.coordinates.lng"
v-for="e in poi"
:position="e.coordinates"
:icon="{
url: require(`@/assets/${e.icon}`),
scaledSize: google && new google.maps.Size(50, 50)
}"
/>
而google
是一个计算出来的属性。
import { gmapApi } from 'vue2-google-maps'
export default {
computed: {
google: gmapApi
}
}
google &&
是什么意思,为什么要在 new google.maps.Size(50, 50)
之前?
谢谢!
&&
称为 logical AND 运算符,在这种情况下它用于避免错误。 MDN 文档指出:
If
expr1
can be converted totrue
, returnsexpr2
; else, returnsexpr1
.
这意味着如果变量 google
未正确初始化,它将 return 虚假值而不是抛出异常(例如无法读取 属性 'maps' of undefined/null).