为什么在下面的代码中我无法用 javascript 中的点符号打印 return 语句
why in the below code i'm not able to print the return statement with the dot notation in javascript
我正在学习 javascript 我遇到了这个问题,我有一个函数接受一个对象和一个 属性 我必须在 [=15= 的帮助下检查] 函数传递给函数的对象是否具有 属性,如果它具有 属性 而不是 return,则它的值否则为 return "Not Found"。
这是我创建的函数:
function checkObj(obj, checkProp) {
if(obj.hasOwnProperty(checkProp)){
return obj.checkProp;
}else{
return "Not Found";
}
}
函数的输入:
checkObj({gift: "pony", pet: "kitten", bed: "sleigh"}, "gift")
所以我发现,经过数小时的尝试并最终观看了解决方案视频,括号表示法可以完成这项工作
解决方案代码
function checkObj(obj, checkProp) {
if(obj.hasOwnProperty(checkProp)){
return obj[checkProp];
}else{
return "Not Found";
}
}
那么谁能解释一下为什么点符号无法完成任务?
它不适用于点符号,因为obj.checkProp
试图从 obj.
中读取名为 checkProp 的 属性
在Javascript中,点运算符用于访问对象的属性。它以一个对象作为第一个参数,一个 属性 名称作为第二个运算符。注意:它采用 属性 name 作为第二个参数 - 不会对第二个参数进行进一步的替换或代码执行。
如果您使用 obj.checkProperty
,您将访问 obj
中存储的对象的名为 checkProperty
的 属性。此对象在您的示例中没有具有该名称的 属性,因此这将失败。
您想要实现的是使用存储在变量checkProperty
[=26=中的名称调用属性 ].这必须使用括号符号来完成,因为在这里,进一步的代码执行完成了——注意 obj["checkProperty"]
(等于 obj.checkProperty
)和 obj[checkProperty]
.[=17= 之间的区别]
我正在学习 javascript 我遇到了这个问题,我有一个函数接受一个对象和一个 属性 我必须在 [=15= 的帮助下检查] 函数传递给函数的对象是否具有 属性,如果它具有 属性 而不是 return,则它的值否则为 return "Not Found"。
这是我创建的函数:
function checkObj(obj, checkProp) {
if(obj.hasOwnProperty(checkProp)){
return obj.checkProp;
}else{
return "Not Found";
}
}
函数的输入:
checkObj({gift: "pony", pet: "kitten", bed: "sleigh"}, "gift")
所以我发现,经过数小时的尝试并最终观看了解决方案视频,括号表示法可以完成这项工作 解决方案代码
function checkObj(obj, checkProp) {
if(obj.hasOwnProperty(checkProp)){
return obj[checkProp];
}else{
return "Not Found";
}
}
那么谁能解释一下为什么点符号无法完成任务?
它不适用于点符号,因为obj.checkProp
试图从 obj.
在Javascript中,点运算符用于访问对象的属性。它以一个对象作为第一个参数,一个 属性 名称作为第二个运算符。注意:它采用 属性 name 作为第二个参数 - 不会对第二个参数进行进一步的替换或代码执行。
如果您使用 obj.checkProperty
,您将访问 obj
中存储的对象的名为 checkProperty
的 属性。此对象在您的示例中没有具有该名称的 属性,因此这将失败。
您想要实现的是使用存储在变量checkProperty
[=26=中的名称调用属性 ].这必须使用括号符号来完成,因为在这里,进一步的代码执行完成了——注意 obj["checkProperty"]
(等于 obj.checkProperty
)和 obj[checkProperty]
.[=17= 之间的区别]