[JavaScript] 함수 - 5

함수 리턴

함수 리턴 방식은 다음과 같은 규칙을 가진다

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); //undefined

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) //bar, 20, woman

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) //foo, 30, man
Author: Song Hayoung
Link: https://songhayoung.github.io/2020/07/12/Languages/JS/function5/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.