在javascript中实例化函数时设置自己的obj键

setting own obj key when instantiating a function in javascript

本文关键字:设置 自己的 obj 函数 javascript 实例化      更新时间:2023-09-26

我刚开始在js中学习OOP。我的问题是,当您调用新函数("key")时,是否可以动态设置您的密钥?更清楚地说,这里是我的例子。

function Rabbit(type) {
   this.type = type;
   this.name = type+"Rabbit";
}
var cage = {};
cage.addAnimal( new Rabbit('fat') );
console.log(cage)

这将输出

 cage{ fatRabbit: Rabbit{
                         type: 'fat', 
                         name: 'fatRabbit',  
                         __proto__: function() {...}  
                         } 
 } //<-- Rabbit is the new Rabbit('fat')

如果我做错了什么,请一定告诉我。谢谢!

答案:

而不是

cage.addAnimal( new Rabbit('fat') );

我所做的是:

var cage = {};
function Rabbit(type) {
   this.type = type;
   this.name = type+"Rabbit";
   cage[this.name] = this;
}
new Rabbit('fat') // I simply call this and a new property is added on cage.
console.log(cage)

是的,您可以使用括号表示法:

function Rabbit(type) {
   this.type = type;
   this.name = type+"Rabbit";
}
var cage = {
    addAnimal: function(animal) {
        this[animal.name] = animal;
    }
};
cage.addAnimal( new Rabbit('fat') );
console.log(cage)