因此,我有一个对象构造函数,但是当我尝试将一个对象放入其中时,数组<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
始终具有定义的最后一个对象的x数量。 (基本上它们最终都一样)
cmndlist
这也是我定义对象的代码。
function command(name, category, help, callback) {
this.name = name;
this.help = help;
this.use = callback;
cmndlist[category].push(this);
};
因此,在此示例中,数组中的所有对象将具有与command("foo",0,"foo", function(message){
//code
});
command("bar",1,"bar", function (message){
//code
});
command("foobar",1,"foobar", function (message){
//code
});
相同的属性。
我不想要,我希望它具有所有三个对象。
答案 0 :(得分:1)
要获取新对象,我们需要在调用命令之前添加“ new”。否则,我们每次都引用相同的对象实例。 在此处查看有关JavaScript中对象构造的描述。 https://www.w3schools.com/js/js_object_constructors.asp
var cmndlist = [];
function command(name, category, help, callback) {
this.name = name;
this.help = help;
this.use = callback;
if(cmndlist.hasOwnProperty(category) == false) cmndlist[category] = [];
cmndlist[category].push(this);
};
new command("foo",0,"foo", function(message){
//code
});
new command("bar",1,"bar", function (message){
//code
});
new command("foobar",1,"foobar", function (message){
//code
});