0

这甚至可能吗?

function foo() {
    // do stuff
}
foo.prototype = {
    // stuff...
    bar: function() {
        // do some things with this, where this refers to foo
    },
    bar.prototype: {
        // set some definitions for bar to work with.
        // Where does "this" go and what does it refer to?
    }
}
4

1 回答 1

0

不,你需要使用

function bar() {...}
bar.prototype = {...};
function foo() {...}
foo.prototype.bar = bar;

虽然这行不通。没有理由将bar构造函数放在foos 原型上,因为通过 using 实例化 bar 对象时new ((new foo()).bar)(),将不会引用 foo 实例。你同样可以使用new foo.prototype.bar().

于 2012-06-21T21:16:00.637 回答