-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
함수표현식질문
20.10.26 11:58 작성 조회수 110
0
function G () {}
G.method1 = function () {}
G.prototype.method2 = function () {}
const g = new G()
이거하고
const b = function() {}
console.log(b.name)
차이점이
아래는 변수명이 b 하나니까 프로퍼티 name 읽어서 부르는데 위는 G.method1로 읽을지 method1로 읽을지 정의가 애매하다고 하셧는데 G.method1 = function(){}하면
function G() {
method1 (){}
}
이게 이렇게 되고 여기서 const g= new G()에서 생성자함수로서 객체 리턴해서 const g = {method1(){}}되는거 아닌가여?? 제가 이해가 안되서 조금만 더 설명해주시면 감사하겠습니다 TT
답변을 작성해보세요.
1
정재남
지식공유자2020.10.27
g 객체는 다음과 같이 생겼습니다.
{
__proto__: {
method1: function() {}
}
}
'읽을지 애매하다'라는건 우리 입장에서 애매하다는게 아니라,
자바스크립트의 명세를 정의하는 기관인 TC39에서 생각할 때
name 프로퍼티에 어떤 값을 넣기로 정의할 지가 애매하다는 뜻이었습니다.
name: "method1" 로 할 지,
name: "g.method1" 로 할 지,
name: "g.__proto__.method1"로 할 지...
답변 1