Coder Social home page Coder Social logo

06. 객체 · GitBook about learnjs HOT 26 OPEN

velopert avatar velopert commented on June 9, 2024
06. 객체 · GitBook

from learnjs.

Comments (26)

Blair-0404 avatar Blair-0404 commented on June 9, 2024 2

안녕하세요 .강의 잘 듣고있습니다.

혹시 getter함수와 setter함수가 예를들어 어떤 역할을 하는지 등 간단한 ㅠ개념에 대해 설명부탁드려도될까요?

from learnjs.

Ballone avatar Ballone commented on June 9, 2024 1

https://mygumi.tistory.com/161 다른분들 참고하세요.
이거 읽으니 좀 알 것 같네요. _name을 가리기 위해서 객체.setter함수를 쓰면,
확실히 변수이름을 모르게 만들 수 있으니 은닉은 되겠네요.

from learnjs.

september-choe avatar september-choe commented on June 9, 2024 1

getter, setter를 단순히 값 저장용이라고 생각하기보다는 캡슐화, 정보은닉 관점에서 이해하는 것이 바람직하다고 봅니다.
자바스크립트에서의 getter, setter 관련하여 유용하게 본 동영상 링크를 올립니다. https://www.youtube.com/watch?v=bl98dm7vJt0
영상 보고 공부한 내용은 블로그에 게재해두었습니다. https://humahumahuma.tistory.com/68 공부에 참고가 되면 좋겠습니다.

from learnjs.

saewookkangboy avatar saewookkangboy commented on June 9, 2024 1

getter : 특정 값을 조회 할 때 마다 함수를 호출
setter : 특정 값을 설정 할 때 마다 값(파라미터)를 설정, 특정 값을 설정 할 수 있다

명확하게 설명은 안되지만, 함수와 값을 설정하는 차이로 구분하면 될까요?
getter / setter 함수가 왜 활용되는지
어떨때 명확하게 구분지어 비교되어 활용되는지에 대한 설명이 추가로 있어야 할 것으로 판단되네요.

from learnjs.

pocojang avatar pocojang commented on June 9, 2024

안녕하세요! 벨로퍼트님

JavaScript의 Function 과 Method에 대해 명확히 구분해서 언급하는게 좋지 않을까 싶습니다

Method도 Function 로 명시해서 설명하는 부분이 많이 나와 댓글 달아봅니다

from learnjs.

velopert avatar velopert commented on June 9, 2024

@devjang

좋은 의견 감사합니다 😀
추후 반영하도록 하겠습니다!

from learnjs.

 avatar commented on June 9, 2024

제가 자바스크립트 생초보인데 그래서 그런지 getter함수와 setter함수 개념정리가 잘 안되네요ㅠ 왜 저 함수가 필요한지, 어떨때 써야하는지 강의를 3번 돌려보고 구글링해도 잘 모르겠어요..ㅎㅎ특정값을 조회하고 바꿀때 쓸 수 있는 다른 함수들도 많은데 굳이 저 함수들이 존재하는 이유같은.. 그런거요 ㅎㅇ

from learnjs.

Ballone avatar Ballone commented on June 9, 2024

다들 느끼고 있는 점이 비슷하네요.
저 역시도 궁금해서 적어봅니다.
a(value){
this._a = 5;
this.calculate();
}
이 함수와
set a(value){
this._a = 5;
this.calculate();
}
이 함수는 부를때
numbers.a(5)로 부르느냐(일반적인 함수)
numbers.a = 5로 부르느냐(setter)
차이인 것 같은데,

자바의 경우는 변수가 private로 선언을 해 캡슐화를 위해서
getter/setter를 두고 그 메소드를 통해서만 변수에 접근할 수 있도록 만드는데,

여기선 왜 getter, setter를 사용하는지 아예 말씀조차 없고, 그냥 getter랑 setter가 있는데
이렇게 쓰는거에요~만 하고 끝나는 느낌이라 아쉽네요.

강의보다가 이해가 안 가서 혹시라도 질문 드릴데가 있나 해서 와봤더니 다들 비슷한 댓글을 달아 놓으셨군요..

from learnjs.

Ballone avatar Ballone commented on June 9, 2024

const numbers = {
_a: 1,
_b: 2,
sum: 3,
calculate(){
console.log('calculate');
this.sum = this._a + this._b;
},
a(value){
this._a = value;
this.calculate();
},
set b(value){
this._b = value;
this.calculate();
}
};

console.log(numbers.sum);
numbers.a(5);
console.log(numbers.sum);
numbers.b = 5;
console.log(numbers.sum);
console.log(numbers.sum);

추가적으로 코드 달아봅니다.

set을 사용한 b와 set을 사용하지 않은 일반함수 a의 차이점이
numbers.a(5) 처럼 =를 사용하지 않는 일반함수 a와
numbers.b = 5 처럼 =를 사용하는 setter함수 b인데,
이게 왜 이렇게 차이가 나도록 만들었으며, 왜 쓰이는 건지 명확한 설명이 없는것 같습니다.

나중에 다시 한번 시간날때 찾아오겠습니다.
부디 답글이 달려있길 바라며..

from learnjs.

junsehd avatar junsehd commented on June 9, 2024

여기서부터 슬슬 어려워 지는군요 ..

from learnjs.

 avatar commented on June 9, 2024

조회할때마다 계산하지 않고, 값의 변화에 따라 계산값을 기억해두고
조회하면 바로 값을 받을 수 있도록 사용한다. 정도로 이해하면 될까요 .. ?

from learnjs.

Make-BeingSelf avatar Make-BeingSelf commented on June 9, 2024

Getter, Setter 내용 코드에서

console.log(numbers.sum);
numbers.a = 5;
numbers.b = 7;
numbers.a = 9;
console.log(numbers.sum);
console.log(numbers.sum);
console.log(numbers.sum);
이 부분
왜 sum을 연속해서 출력하는지 알 수 있을까요?
console.log(numbers.a);
console.log(numbers.b);
console.log(numbers.sum);
인가요?

from learnjs.

Unlimited000 avatar Unlimited000 commented on June 9, 2024

벨로퍼트님 항상 강의 잘 듣고 있습니다
다른 분들이 게터/세터 개념을 혼동하시는거 같길래 문제를 풀어보았는데요

const numbers = {
_a: 1,
_b: 2,
sum: 3,
calculate() {
console.log('calculate');
this.sum = this._a + this._b;
},
get a() {
return this._a;
},
get b() {
return this._b;
},
set a(value) {
console.log('a가 바뀝니다.');
this._a = value;
this.calculate();
},
set b(value) {
console.log('b가 바뀝니다.');
this._b = value;
this.calculate();
}
};

console.log(numbers.sum); // 3
numbers.a = 5; // a 변수에 파라미터 값이 5가 들어가면서 (1) console.log 가 실행, (2) const numbers(this) 에 기존에 _a = 1인 값을 5로 set, (3) calculate() 함수 실행
console.log(numbers.sum); // a: 5 + b: 2 = 7
numbers.b = 7; // b 변수에 파라미터 값이 7이 들어가면서 (1) console.log 가 실행, (2) const numbers(this) 에 기존에 _b = 2인 값을 7로 set, (3) calculate() 함수 실행
console.log(numbers.sum); // a: 5 + b: 7 = 12
numbers.a = 9; // a 변수에 파라미터 값이 9가 들어가면서 (1) console.log 가 실행, (2) const numbers(this) 에 앞서 들어간 _a = 5 를 9로 set, (3) calculate() 함수 실행
console.log(numbers.sum); // a: 9 + b: 7 = 16

이렇게 하시면 될 거 같아서 의견 남깁니다

from learnjs.

importants avatar importants commented on June 9, 2024

const dog = {
name: "멍멍이",
sound: "멍멍",
say: function say() {
console.log(this.sound)
}
}
에서 const dog 부분이 에러라고 뜹니다
dog is assigned a value but never used (no-unused-vars)이라고 뜨는데 무슨 문제일까요?

from learnjs.

yeonwxoxo avatar yeonwxoxo commented on June 9, 2024

@ljh9716

dog.say();
를 안치신 것 같아요 !

from learnjs.

JongheonLee94 avatar JongheonLee94 commented on June 9, 2024

우리는 numbers.sum() 을 한 것이 아니라 number.sum 을 조회했을 뿐인데, 함수가 실행되고 그 결과값이 출력되었습니다.
numbers.sum의 s가 빠졌습니다

from learnjs.

hks2000 avatar hks2000 commented on June 9, 2024

//우리는 numbers.sum() 을 한 것이 아니라 number.sum 을 조회했을 뿐인데, 함수가 실행되고 그 결과값이 출력되었습니다.//

이 문장을 조금더 풀이를 해서 알려 주었음 합니다.
함수()호출 이랑 호출을 안썼을때 차이점이요!

from learnjs.

totter15 avatar totter15 commented on June 9, 2024

안녕하세요 벨로퍼트님 강의 잘듣고 있습니다!
const numbers = {
_a: 1,
_b: 2,
sum: 3,
calculate() {
console.log('calculate');
this.sum = this._a + this._b;
},
get a() {
return this._a;
},
get b() {
return this._b;
},
set a(value) {
console.log('a가 바뀝니다.');
this._a = value;
this.calculate();
},
set b(value) {
console.log('b가 바뀝니다.');
this._b = value;
this.calculate();
}
};

console.log(numbers.sum);
numbers.a = 5;
numbers.b = 7;
numbers.a = 9;
console.log(numbers.sum);
console.log(numbers.sum);
console.log(numbers.sum)

에서

get a() {
return this._a;
},
get b() {
return this._b;
}
부분이 없어도 결과가 똑같이 나오는데 get함수를 넣는 이유가 있나요?

from learnjs.

Hoon-Yim avatar Hoon-Yim commented on June 9, 2024

음.. 다들 setter, getter가 왜 필요한지 왜 사용하는지 궁금해 하시는 것 같은데
객체지향 프로그래밍에 대한 개념이 잡히시지 않으셔서 그럴겁니다
나중에 객체지향 언어들 (C++, 자바 등)을 배우실 때 왜 필요한 지 알게 되실거에요

from learnjs.

apparent-moon avatar apparent-moon commented on June 9, 2024

왜 getter setter가 필요한지, 이 부분에 대한 자세한 설명이 더 있다면 좋았을것 같네요.

윗분은 객체지향 프로그래밍 개념이 잡히지 않은 분들이 comment를 했다고 남기셨는데, 다수의 분들이 getter setter에 대한 추가적인 설명을 요청드렸으나 벨로퍼트님의 피드백이 없던게 문제가 아닐까 싶습니다. 벨로퍼트님의 능력이면 충분히 해주셨을 수 있으셨을거라고 생각하는데요ㅠㅠ...

다른분들이 올려주신 링크로 getter setter에 대해서 좀 더 많은 공부하고 갑니다^^ 감사합니다!

from learnjs.

Jibros avatar Jibros commented on June 9, 2024

22.03.22

from learnjs.

zuzubibi avatar zuzubibi commented on June 9, 2024

22.03.23

from learnjs.

studyToStudy avatar studyToStudy commented on June 9, 2024

22.08.14

from learnjs.

neoseurae12 avatar neoseurae12 commented on June 9, 2024

22.08.19

from learnjs.

jkf87 avatar jkf87 commented on June 9, 2024

22.10.20

from learnjs.

Blackzax avatar Blackzax commented on June 9, 2024

_a랑 a랑 혼재돼있어서 헷갈려요

from learnjs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.