Object Constructor Catch
by shwon24
HTML
<link rel="stylesheet" href="http://twitter.github.io/bootstrap/assets/css/bootstrap.css">
<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>
JavaScript
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
});