我正在看这样的东西:
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
, this
和prototype
函数时,这些都是面向对象编程术语中的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() {
// ...
};
}
你混合和匹配两者,它没有正确解析。