是否可能有一个Javascript函数有两个或更多的函数在里面

Is it possible to have a Javascript function to have two or more functions inside?

本文关键字:函数 两个 在里面 有一个 Javascript 是否      更新时间:2023-09-26

我正在看这样的东西:

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;
    }
 }

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

您正在尝试使用像文字一样的函数。

在javascript中有一种叫做文字的东西,它的工作原理就像这样,是的,它可以有多个。它的语法是这样的:

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

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

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

如果你想让一个函数具有可以在函数外部调用的函数,你可以使用prototype关键字:

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

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

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

或者你可以使用this关键字

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

你可以把它命名为

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

或者如果你只打算使用该函数中的函数你可以使用var关键字

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

你可以在函数内部像这样调用

bar();

如果你曾经用类做过OO编程,那么解释起来可能会容易一些。

把函数看作一个类。它有公有和私有成员和函数,在函数中你可以指定这些,当使用var关键字时,把它们看作私有成员和函数,当使用this关键字时,把它们看作公有成员和函数,prototype成员的工作方式也很像this,但是我还没有研究它们的区别。

当使用var, thisprototype函数时,这些都是面向对象编程术语中的non static。需要一个对象引用

这是因为赋值是在调用函数或创建它的新实例时完成的

调用new foo()和调用foo()是有区别的,当调用foo()时,你得到的是函数返回的东西,但是当调用new foo()时,你得到的是那个对象的一个实例。

所以要引用foo的公共成员,你需要创建它的一个新实例

只是想把所有的都说出来。xD

可以,但是您的语法无效。

对象声明语法:

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

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

function() {
    // these are just regular statements
    // no colons, no commas
    function regularFunction() {
        // ...
    };
    var anonymousFunction = function() {
        // ...
    };
}

你混合和匹配两者,它没有正确解析。