function checkObj(obj, checkProp) {
if(obj.hasOwnProperty(checkProp)){
return obj[checkProp]
}else{
return "Not Found"
}
}
Above is the code that works for the problem “Testing Objects and Properties”. It only works if you use “return obj[checkProp]”. It doesn’t work if you use “return obj.checkProp”. Why? Why doesn’t dot notation work in this situation?
There is no key called checkProp on that object.
var obj = {
example: 1
}
obj.example is 1.
obj.checkProp doesn’t exist.
var checkProp = "example";
var obj = {
example: 1
}
obj.example is 1.
obj.checkProp doesn’t exist
obj[checkProp] is 1.
The square brackets here say "evaluate what the value of the variable is inside them.
The value is the string “example”
obj["example"]
,```
Which is now same as:
obj.example
I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.
You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.
See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (’).