是否可以使用Javascript函数在其中包含两个或更多函数?

时间:2013-05-03 03:10:23

标签: javascript function

我正在看这样的事情:

function Lab = {
    minseat: function(){
        var seat = 10;
        return seat;
    },


    maxseat: function(){
        var seat = 50;
        return seat;
    }

 }

问题是因为以下代码只会在运行时运行,因此代码的定位变得非常重要,因为我需要将它们置于调用的代码行(例如Lab.minseat())之上它

var Lab = {
    minseat: function(){
        var seat = 10;
        return seat;
    }


    maxseat: function(){
        var seat = 50;
        return seat;
    }

 }

是的,我知道这个问题很愚蠢,很可能会吸引投票,但我想知道是否有可能吗?

2 个答案:

答案 0 :(得分:4)

您正在尝试使用类似文字的功能。

在javascript中有一个名为文字的东西,它的工作方式与此类似,是的,它可以有多个。它的语法是这样的:

var foo = {
    bar: functon(){},
    foobar: function(){}
}

您可以像这样调用这些函数

foo.bar();
foo.foobar();

如果您希望函数具有可以在函数外部调用的函数,则可以使用prototype关键字:

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

您可以像这样调用这些函数

var f = new foo();
f.bar();

或者您可以使用此关键字

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

你可以这样称呼

var f = new foo();
f.bar();

或者如果您只想使用该函数中的函数,则可以使用var关键字

function foo(){
    var bar = function(){};
}

您可以在此功能中调用此

bar();

如果您曾经使用类进行OO编程,那么解释可能会更容易一些。

将该功能视为一个类。它使用公共和私有成员和函数,在您可以指定这些函数的函数内,当使用var关键字将这些视为私有成员和函数时,并且在使用this关键字时将其视为公开的,prototype成员的工作方式与this非常相似,但我仍然没有考虑过差异。

varthisprototype与函数一起使用时,这些都是面向对象编程方面的non static。它需要一个对象引用。

这是因为分配是在您调用函数或创建新实例时完成的

调用new foo()与调用foo()时调用foo()之间存在差异,但是当调用函数返回时,调用new foo()会返回实例那个对象。

因此,要引用foo的公共成员,您需要创建一个新的实例

有点想干掉这一切。的xD

答案 1 :(得分:3)

是的,但您的语法无效。

这是对象声明语法:

var obj = {
    member: value,
    anotherMember: value
};

这是函数语法,它只是常规语法:

function() {
    // these are just regular statements
    // no colons, no commas

    function regularFunction() {
        // ...
    };

    var anonymousFunction = function() {
        // ...
    };
}

你正在混合和匹配它们并且它没有正确解析。