LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • css
  • TODOlist
  • codestate
  • 알고리즘
  • ubuntu
  • html
  • 코플릿
  • 생활코딩
  • 파이어베이스연동
  • DP
  • figjam
  • linux
  • JavaScript
  • 2609
  • 코딩애플
  • 1292
  • 사용자 친화 웹
  • 안드로이드스튜디오범블비
  • 백준
  • 자바스크립트
  • 안드로이드스튜디오파이어베이스
  • 번들링
  • 사이드프로젝트
  • 코드스테이츠
  • React
  • UI/UX
  • linuix 코드스테이츠
  • 사용자친화웹
  • 웹팩
  • 2693

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

생활코딩 자바스크립트 기본 - 함수지향(함수의 호출)
프론트엔드/JavaScript

생활코딩 자바스크립트 기본 - 함수지향(함수의 호출)

2022. 8. 3. 18:19

본 게시글은 인프런 강의 "생활코딩 - 자바스크립트(JavaScript) 기본"를 보고 공부한 내용을 정리하고 있습니다.

https://www.inflearn.com/course/%EC%A7%80%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%96%B8%EC%96%B4-%EA%B8%B0%EB%B3%B8/dashboard

 

[무료] 생활코딩 - 자바스크립트(JavaScript) 기본 - 인프런 | 강의

생활코딩의 자바스크립트 언어 기본 수업입니다. 기본 문법을 통한 자바스크립트 기본에 대해 배울 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com


함수 호출

다음은 함수를 호출하는 가장 기본적인 방법이다

function  func(){
    
}
func();

 

함수는 일종의 객체이다. 객체는 속성을 갖는다. 그 속성에 함수를 갖는다면 메소드라 부른다.

 

function sum(arg1, arg2) {
    return arg1 + arg2;
}
document.write(sum(1,2)+"<br>");
document.write(sum.apply(null,[1,2]));

다음의 결과는3으로 같다.

function.apply( null, [a,b] ); 꼴로 코드가 더 길어졌는데 이건 왜 쓰는 걸까?

 

apply()메서드는 주어진 this값과 유사 배열 객체로 제공되는 ardument로 함수를 호출합니다.

call()과 유사하지만, call()은 함수에 전달될 인수 리스트를 받는데 비해, apply()는 인수들의 단일 배열을 받는다.
func.apply(thisArg, [argsArray])

thisArg

  - func을 호출하는데 제공될 this의 값이다. 위에 코드에서는 this값으로 정해준게 없기 때문에 null을 이 자리에 사용해 this값을 대체합니다.

 

argsArrat

   - func 이 호출되어야 하는 인수를 지정하는 유사 배열 객체이다.

 

o1 = {val1:1, val2:2, val3:3}
o2 = {v1:10, v2:50, v3:100, v4:25}
function sum(){
    var _sum = 0;
    for(name in this){
        _sum += this[name];
    }
    return _sum;
}
document.write(sum.apply(o1)); // 6
document.write(sum.apply(o2)) // 185

만약 document.write(o1.sum());를 마지막 문장에 넣을 경우, sum.apply(o1)처럼 6이 나올것 같지만, 아무것도 출력되지 않는다.

같은 결과 값을 얻기 위해서 o1을 o1 = {val1: 1, val2: 2, val3: 3, sum: sum}로 수정해준다.

이렇게 되면 결과가

6function sum() { var _sum = 0; for (name in this) { if (typeof this[name] !== 'function') { } _sum += this[name]; } return _sum; }

이렇게 나온다.

sum: sum이 될떄 _sum에 들어가면서 나타나는 결과 이다.

원하는 결과인 6만 얻기 위해서는 for문안에 조건절을 넣는다.

만약 this[name]이 함수형이 아니면 _sum에 더한다의 의미로,

그러면 코드는 다음과 같이 수정된다

o1 = {val1: 1, val2: 2, val3: 3, sum: sum};
o2 = {v1: 10, v2: 50, v3: 100, v4: 25, sum: sum};
function sum() {
    var _sum = 0;
    for (name in this) {
            if (typeof this[name] !== 'function'){
                _sum+=this[name];
            }
    }
    return _sum;
}

document.write(o1.sum());  //6
document.write(o2.sum());  //185

 

저작자표시 (새창열림)

'프론트엔드 > JavaScript' 카테고리의 다른 글

생활코딩 자바스크립트 기본 - 객체지향 | 전역객체  (0) 2022.08.30
생활코딩 자바스크립트 기본 - 객체지향 | 생성자와 new  (0) 2022.08.30
생활코딩 자바스크립트 기본 - 함수지향 (arguments)  (0) 2022.08.03
생활코딩 자바스크립트 기본 - 함수지향(클로저)  (0) 2022.08.02
생활코딩 자바스크립트 기본 - 함수지향 (값으로서의 함수와 콜백)  (0) 2022.08.02
    '프론트엔드/JavaScript' 카테고리의 다른 글
    • 생활코딩 자바스크립트 기본 - 객체지향 | 전역객체
    • 생활코딩 자바스크립트 기본 - 객체지향 | 생성자와 new
    • 생활코딩 자바스크립트 기본 - 함수지향 (arguments)
    • 생활코딩 자바스크립트 기본 - 함수지향(클로저)
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바