在JavaScript中使用/定义函数时出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JavaScript中使用/定义函数时出错相关的知识,希望对你有一定的参考价值。
我编写了一个JS函数,该函数解析JSON响应并将其显示为Toast消息。一切正常。我现在要添加一个附加功能。 JSON响应采用以下格式:
"type": "message",
"message": "Payment Approved with Order Number: &&Secure.OrderNum&& and Transaction ID: &&Secure.TransactionNum&&"
而不是提取整个消息,我想提取TransactionNum
的变量值,然后将其显示在html中(因此,不仅在烤面包中)。
所以这是我写的用于提取消息对象中一个值的JS:
_onDataEvent(jsonData)
let eventData = JSON.parse(jsonData);
// Is this a message?
if (eventData.type === "message")
// Yes, show the status
let message = eventData.message;
const evt = new ShowToastEvent(
title: "Payment Status",
message: message,
variant: 'info'
);
dispatchEvent(evt);
// Is this a result?
else if (eventData.type === 'result')
// Yes, show the result
let success = eventData.success;
let message = eventData.message;
const evt = new ShowToastEvent(
title: "Payment Result",
message: message,
variant: success ? 'success' : "error",
url: "www.five9.com"
);
transaction(message); //I added this and VS code keeps on putting a red squiggly line on it.
dispatchEvent(evt);
transaction(message)
var words = message.split(" ");
var transactionId = words[-1];
return transactionId;
现在,我在调用该方法时遇到错误。它说
transaction is not defined
当我向该方法添加function关键字时,然后在该方法调用上没有得到红色的波浪线,但是又出现了另一个错误:
Unexpected token: A constructor, expression, accessor or property was expected
我不确定该如何解决。我在做错什么吗方法?方法编写正确吗?我需要添加一些东西还是更改顺序?
您的代码可能在对象文字或类声明中。
- 如果省略function关键字,则在对象上定义一个方法(不是全局作用域函数)。
- 您不能在此处使用function关键字,因为不允许使用。
要解决它,请将函数声明放在_onDataEvent
方法内部,以在本地创建它:
_onDataEvent(jsonData)
function transaction(message)
var words = message.split(" ");
var transactionId = words[-1];
return transactionId;
let eventData = JSON.parse(jsonData);
// Is this a message?
if (eventData.type === "message")
// Yes, show the status
let message = eventData.message;
const evt = new ShowToastEvent(
title: "Payment Status",
message: message,
variant: 'info'
);
dispatchEvent(evt);
// Is this a result?
else if (eventData.type === 'result')
// Yes, show the result
let success = eventData.success;
let message = eventData.message;
const evt = new ShowToastEvent(
title: "Payment Result",
message: message,
variant: success ? 'success' : "error",
url: "www.five9.com"
);
transaction(message);
dispatchEvent(evt);
此外,transaction
函数以其当前形式执行无用:
- 它不会改变任何东西
- 它返回一个值,但调用者将其忽略
- 您无法使用负数从后向访问数组索引,它将改为访问
"-1"
属性(通常为undefined
)
但是这些都是这个问题的主题。
似乎您正在使用包装在类中的代码。
在这种情况下,您与此对象有关。因此,如果您不使用“ this”,它将仅在函数上下文中搜索,从而给您带来错误。
以上是关于在JavaScript中使用/定义函数时出错的主要内容,如果未能解决你的问题,请参考以下文章
通过JavaScript执行机制去学习闭包,执行上下文,作用域,作用域链。
通过JavaScript执行机制去学习闭包,执行上下文,作用域,作用域链。