为什么这样不行?

aContract = function(){};
aContract.prototype = {
    someFunction: function() {
        alert('yo');
    },
    someOtherFunction: some$Other$Function
};

var some$Other$Function = function() {
    alert('Yo yo yo');
};

var c = new aContract();
c.someFunction();
c.someOtherFunction();


Firebug说c.someOtherFunction不是函数

但这很好

aContract = function(){};
aContract.prototype = {
    someFunction: function() {
        alert('yo');
    },
    someOtherFunction: some$Other$Function
};

function some$Other$Function() {
    alert('Yo yo yo');
};

var c = new aContract();
c.someFunction();
c.someOtherFunction();


我在这里想念什么???我更喜欢使用第一种方法在javascript中进行编码,该方法通常可以正常工作,但在原型设计时似乎无法正常工作。

谢谢,
〜ck在桑迪·艾格(Sandy Eggo)

最佳答案

在实际创建some$Other$Function之前,已将aContract.prototype.someOtherFunction分配给some$Other$Function。语句的顺序很重要。如果您切换事物的顺序,那么您会很好:

var some$Other$Function = function() {
    alert('Yo yo yo');
};

aContract = function(){};
aContract.prototype = {
    someFunction: function() {
        alert('yo');
    },
    someOtherFunction: some$Other$Function
};

10-08 02:11