why don't javascript object property descriptors always default to false

http://stackoverflow.com/questions/27726816

by Garth Edwards

HTML

<script src="http://code.angularjs.org/1.3.5/angular.js"></script>
<div ng-app="myApp">
    <div ng-controller="TestCtrl">
        myObject1<br>
        Created using Method #1 - <b>Dot Notation</b>: <br><br> 
        {{method1Data}}<br>
        <br>
        <br>
        <br>
        myObject2<br>
        Created using Method #2 - <b>Bracket Notation</b>: <br><br> 
        {{method2Data}}<br>
        <br>
        <br>
        <br>
        myObject3<br>
        Created using Method #3 - <b>defineProperty</b>: <br><br> 
        {{method3Data}}<br>
    </div>
</div>

JavaScript

var myApp = angular.module('myApp', []);

myApp.controller('TestCtrl', function($scope) {
    

  // method #1__________________________Dot Notation
    var myObject1 = {};
    myObject1.name = "ben";
    
    var myObject1_ObjectProperties = Object.getOwnPropertyDescriptor(myObject1, "name");

    $scope.method1Data = myObject1_ObjectProperties;

    
    
  // method #2_____________________________Bracket Notation
    var myObject2 = {};
    myObject2["name"] = "ben";
    
    var myObject2_ObjectProperties = Object.getOwnPropertyDescriptor(myObject2, "name");

    $scope.method2Data = myObject2_ObjectProperties;
    
    
    
    // method #3_____________________________defineProperty
    var myObject3 = {};
    Object.defineProperty(myObject3, 'name', { value: "ben" });
    
    var myObject3_ObjectProperties = Object.getOwnPropertyDescriptor(myObject3, "name");

    $scope.method3Data = myObject3_ObjectProperties;

    
});