함수 리턴
함수 리턴 방식은 다음과 같은 규칙을 가진다
Rule 1.
일반 함수나 메서드는 리턴값을 지정하지 않을 경우 undefined 값이 리턴된다
1 2 3 4 5 6
| var noReturnFunc = function() { console.log('This function has no return statement'); };
var result = noReturnFunc(); console.log(result);
|
Rule 2.
생성자 함수에서 리턴값을 지정하지 않을 경우 생성된 객체가 리턴된다
1 2 3 4 5
| function Person(name, age, gender) { this.name = name; this.age = age; this.gender = gender; }
|
Rule 2-1.
생성자 함수에서 다른 객체를 리턴할 경우 다른 객체가 리턴된다
1 2 3 4 5 6 7 8 9 10
| function Person(name, age, gender) { this.name = name; this.age = age; this.gender = gender;
return {name:'bar', age:20, gender:'woman'}; }
var foo = new Person('foo', 30, 'man'); console.dir(foo)
|
Rule 2-2.
생성자 함수에서 객체가 아닌 값을 리턴할 경우 this로 바인딩된 객체가 리턴된다
1 2 3 4 5 6 7 8 9 10
| function Person(name, age, gender) { this.name = name; this.age = age; this.gender = gender;
return 100; }
var foo = new Person('foo', 30, 'man'); console.dir(foo)
|