Edit in JSFiddle

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

// Object Constructor Catch
app.controller('MyCtrl', function($scope) {
    $scope.o = new Object();
    $scope.constructorIsObject = ($scope.o.constructor === Object); // true
    
    // Object 생성자는 인자를 받을 수 있다. 인자에 따라 다른 내장 생성자에 객체 생성을 위임한다. 기대한것과 다른 객체가 반환되는 셈.
    $scope.num = new Object(1);
    $scope.constructorIsNumber = ($scope.num.constructor === Number); // true
    $scope.fixedNum = $scope.num.toFixed(2);
    $scope.str = new Object("I am a String");
    $scope.constructorIsString = ($scope.str.constructor === String); // true
    $scope.typeofSubstring = typeof $scope.str.substring;
    $scope.boolObj = new Object(true);
    $scope.constructorIsBoolean = ($scope.boolObj.constructor === Boolean); // true    
});
<div ng-controller='MyCtrl'>
    <h4>Object Constructor Catch</h4>
    <ul>
        <li>o.constructor is Object: {{constructorIsObject}}</li>
        <li>num.constructor is Number: {{constructorIsNumber}}, num={{num}}, fixedNum={{fixedNum}}</li>
        <li>str.constructor is String: {{constructorIsString}}, str={{str}}, {{typeofSubstring}}</li>
        <li>boolObj.constructor is Boolean: {{constructorIsBoolean}}</li>
    </ul>
</div>