这是我正在尝试做的一个非常蹩脚的例子。这段代码有效。
var Love = {
name: 'Johnny',
kiss: function (girl){
alert(this.name + " kissed " + girl );
}
};
Love.name = "Chris";
Love.kiss("Becky");
我首先重新分配了name属性,然后调用了发送我的参数的方法
我真正想做的是在调用方法时使用 JSON 设置“name”属性。我发誓我在某个地方见过它,但我无法弄清楚。所以理想情况下它看起来像这样。
Love.kiss({
name: 'Chris'},
"Becky");
或者甚至是类似的东西。
var Love = {
Guy: 'Johnny',
Girl: 'Mallory',
kiss: function (){
alert(this.Guy + " kissed " + this.girl);
}
};
Love.kiss({
Guy: 'Chris',
Girl; 'Becky'});
再说一遍,我知道这是一个非常愚蠢的例子,但这个概念有我想使用的特定应用。
最佳答案
只需运行作为参数传入的对象的键并将它们分配给 this
:
var Love = {
Guy: 'Johnny',
Girl: 'Mallory',
kiss: function(opts) {
for (var k in opts) {
this[k] = opts[k];
}
alert(this.Guy + " kissed " + this.Girl);
}
};
Love.kiss({
Guy: 'Chris',
Girl: 'Becky'
}); // -> alert('Chris kissed Becky')
See demo
关于javascript - 在调用依赖它的方法时设置 javascript 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11237529/