如果customer_id
不存在于Shopify JavaScript对象中,我将得到错误未定义的TypeError:无法读取属性(读取'customer_id'):
function () {
if ("customer_id" in Shopify !== "undefined") {
return Shopify.checkout.customer_id;
} else {
return ShopifyAnalytics.meta.page.customerId;
}
};
如果
if ("customer_id" in Shopify) {
,则当属性存在时,它将失败条件;如果条件语句为if ("customer_id" in Shopify.checkout) {
,则该属性满足条件。但是,当该属性不存在时,它会生成未命名的TypeError.。
不使用hasOwnProperty()
方法,因为我需要检查对象中继承的属性。检查对象中是否存在继承的属性的正确方法是什么?
发布于 2022-08-23 08:20:09
"customer_id" in Shopify
这将始终解析为布尔值,从不是未定义的afaik,因此您需要删除检查中的!==“未定义”部分。
此外,如果在第一个位置上找不到该属性,则可以强制另一个属性,而它也可能是空值或未定义的,这就是您所遇到的错误。
ShopifyAnalytics.meta.page.customerId // meta.page could be undefined
在运行时的某个地方,您可以计算"undefined.anything“,从而得到”无法读取任何未定义的属性“。
https://stackoverflow.com/questions/73455231
复制相似问题