Tell us what’s happening:
Your code so far
// Setup
var myObj = {
gift: "pony",
pet: "kitten",
bed: "sleigh"
};
function checkObj(checkProp) {
// Your Code Here
if(myObj.hasOwnProperty(checkProp)) {
return myObj[checkProp];
}
return "Not Found"
}
// Test your code by modifying these values
checkObj("gift");
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36.
Link to the challenge:
I don’t understand why using myObj[checkProp] is run but using myObj.checkProp is not?
The two options you mention do different things:
var checkProp = gift;
myObj[checkProp]// go to myObj and get the value from the gift property
myObj.checkProp// go to myObj and get the value from the checkProp property
In general you want to use bracket notation if you are using a variable/parameter (such as checkProp) to access a variable. It also comes in handy if you have a property name with spaces: myObj["has spaces"] or if the property you are trying to access begins with a number. Other than that, dot notation is usually the best option.
Hope this help clear things up 
I get it. Thanks for helping me to understand the difference between them.