다른 함수에서 함수를 만드는 것과 관련된 프로젝트를 진행하고 있습니다. 나는 물건을 단순화하기 위해 클래스를 작성하는 아이디어가 있었지만, __proto__
을 사용하지 않고 작동시키지 못했습니다.사용자 지정 함수 클래스
기본적으로 내 비전은 무엇입니까?
function MyFunction() {
// ...
}
var myFn = new MyFunction();
myFn(); // executes without error
myFn instanceof MyFunction; // returns true
다음 코드 뭔가 다른 모든 속성을 포함하는 기능을 확장있어 여기 __proto__
function MyFunction() {
var fn = function() { return 'hello'; };
fn.__proto__ = this;
return fn;
}
var myFn = new MyFunction();
alert(myFn()); // hello
alert(myFn instanceof MyFunction); // true
를 사용하여 여기에 내가 valueOf
function MyFunction() {
this.fn = function() { return 'hello'; };
this.valueOf = function() { return this.fn; };
}
var myFn = new MyFunction();
alert(myFn instanceof MyFunction); // true
alert(myFn.valueOf()()); // hello
alert(myFn()); // error
를 사용하려고했습니다 뭔가 그냥 않으며, MyFunction
.
function MyFunction() {
this.foo = 'hello'
var fn = function() { return 'hello'; };
for (var i in this) {
fn[ i ] = this[ i ];
}
return fn;
}
var myFn = new MyFunction();
alert(myFn()); // hello
alert(myFn.foo); // hello
alert(myFn instanceof MyFunction); // false
비표준이므로 __proto__
을 사용하고 싶지 않습니다. 또한, 이것은 일종의 이상한 생각이었습니다. 나는 그것을 작동시키고 싶습니다. 그러나 가능하지 않다면 나는 살 것입니다. 하지만 내 질문은 내가 할 수있는 일이라고 생각하는거야?
Bummer, 나는 또한 다음 양식에도 '__proto__' 형식이 공식적으로 추가 될 것이라고 들었습니다. 나는 나의 시간보다 앞서 있다고 생각한다. – SpaceFace