Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

JavaScript AJAX Basics (retiring) AJAX and APIs Create a callback function

Not able to pass object and properties.

Pretty new to this, so i was wonder why this isn't working. How do i know if weatherReport object has property own its own or nested?

weather.js
$(document).ready(function() {
  var weatherAPI = 'http://api.openweathermap.org/data/2.5/weather';
  var data = {
    q : "Portland,OR",
    units : "metric"
  };
   function showWeather(weatherReport){
      weatherReport.main.temp
   };
  $('#temperature').text();
});
index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>What's the Weather Like?</title>
  <script src="jquery.js"></script>
  <script src="weather.js"></script>
</head>
<body>
  <div id="main">
    <h1>Current temperature: <span id="temperature"></span>&deg;</h1>
  </div>
</body>
</html>
Bram Dijkhuis
Bram Dijkhuis
5,746 Points

Are you using a key to access the API?

1 Answer

Craig Campbell
Craig Campbell
14,428 Points

If you want to know if a particular property is on a particualr object (as opposed to "inheriting" it from somewhere in its prototype chain) you can try obj.hasOwnProperty(prop). obj is the object you are testing, and prop is the property name. Prop must be in quotes! So to test if weatherReport has the property 'main' attached DIRECTLY to it (not inherited) then:

weatherReport.hasOwnProperty('main');  

This returns a Boolean. But, if you want to SEE it, you'd want to console.log it. so:

console.log(weatherReport.hasOwnProperty('main'));