Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将赋值函数作为属性添加到NodeJs中的对象_Node.js_Function_Variables - Fatal编程技术网

Node.js 将赋值函数作为属性添加到NodeJs中的对象

Node.js 将赋值函数作为属性添加到NodeJs中的对象,node.js,function,variables,Node.js,Function,Variables,为了好玩和探索nodeJS,我制作了一个对象 var f15c = { fuel : 10000, IRST: true, AESA: true, speed: 2500, Ammo: { AMRAAM: 6, Python5: 2, Delilah: 3, }, tailnumber : the question begins here. } 当我想添加尾号时,问题出现了。尾号对于每个飞机都不相同,但应该分配给该飞机。 方法是什么 var f15c = { ...

为了好玩和探索nodeJS,我制作了一个对象

var f15c = {
fuel : 10000,
IRST: true,
AESA: true,
speed: 2500,
Ammo:
 {
    AMRAAM: 6,
    Python5: 2,
    Delilah: 3,
 },
tailnumber : the question begins here.
}
当我想添加尾号时,问题出现了。尾号对于每个飞机都不相同,但应该分配给该飞机。 方法是什么

var f15c = {
...
tailnumber = function (tn){"whats should i add here?"}
}

还是必须将整个F15c作为一个函数

var f15c = function(tn) {
...
tailnumber = tn;
但是我不能把整个变量设置得很复杂

或者我做得不对,应该将变量引用为单独的F15,并使用不同的函数来创建它? 但是,如何使该字段处于未分配状态并等待分配(然后保存分配的编号)


如果您能提供一些提示,我们将不胜感激。

秘诀是使用
引用自己对象的属性

var f15c={
...
尾号:空,
setTailNumber:功能(tn)
{
这个。尾号=tn;
}
}

然后:

f15c.setTailNumber(1234);

控制台日志(f15c.尾号)

您的意思是要为属性设置值吗

var f15c={
_尾号:0,
设置尾号(新尾号){
此._tailnumber=newtailnumber;
},
获取尾号(){
把这个还给我
}
};
f15c.tailnumber=“304”;
控制台日志(f15c.尾号);

控制台日志(f15c)你到底想做什么?这是一个比“如何使用函数”更重要的问题。对于您正在做的事情,似乎定义类并将tailnumber传递给构造函数是更好的选择。您应该接受Jelmer下面的响应,因为它是完整和优雅的。只要记住使用
这个
的概念:它代表调用对象。使用
设置
获取
的好处。不过,完整的解决方案应该包含一个类:f15c isa plain(我猜),并且f15c的实例有一个特定的尾号。正确。如果对象被重用,人们可能会认为只应用了新的集合,而所有引用都会受到影响。但是我们深入研究:-)这有助于您获取tailnumber(){返回此。_tailnumber}而不是调用f15c.tailnumber吗?另外,我运行代码片段,不知道为什么它会返回到console.log(f15c);这个答复{u tailnumber:“304”,“tailnumber:“304”}?在我的例子中,我接收console.log(f15c);控制台日志(f15c.尾号);控制台:对象{fuel:10000,IRST:true,AESA:true,speed:2500,Ammo:Object,}123这有助于您获取tailnumber(){返回这个。\ u tailnumber}而不是调用f15c.tailnumber?---通过在同一属性名称上使用
set
get
,您就有了真正的set/get行为:
f15c.tailnumber(1)
设置数字并
f15c.tailnumber
为您获取它。然后,您必须将tailnumber的实际值存储到其他地方。使用_tailnumber很好,因为为了简单起见,它保留了名称。
var f15c = function(tn) {
...
tailnumber = tn;