함수 안에 프로토 타입을 설정할 수없는 이유는 무엇입니까? 예를 들어 왜 이것이 작동하지 않습니까?함수 안에 JavaScript 프로토 타입을 설정할 수없는 이유는 무엇입니까?
var Bar = function(){
this.name='Bar'
}
var barProto = new Bar()
var Foo = function(){
}
Foo.prototype= barProto
var foo = new Foo()
console.log(foo.name) // Bar
내가 기능을 생성 한 후 프로토 타입을 지정하는 구문을 좋아하지 않는다 :
var Bar = function(){
this.name='Bar'
}
var barProto = new Bar()
var Foo = function(){
this.prototype= barProto
}
var foo = new Foo()
console.log(foo.name) // undefined
는하지만이 작업을 수행합니다.
나는 당신이 말하는 것을 얻을 셈 이죠. 하지만 프로토 타입 barProto를 갖기 위해 만든 새 객체를 원하지 않습니까? 프로토 타입은 "new"가 사용될 때만 설정됩니까? 왜 어떤 객체의 프로토 타입 속성을 언제든지 설정할 수 있습니까? – Eddie
내가 말하는 것은 정확히 ben336과 동일합니다. "왜 어떤 객체의 프로토 타입 속성을 언제든지 설정할 수 없습니까?" 그게 언어가 작동하는 방식입니다. 아마도 당신은'var foo = Object.create (barProto)'를 선호할까요? 그것도 작동하며'Foo' 생성자 나'new' 키워드를 필요로하지 않습니다. – bfavaretto