You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将字符串传入JavaScript函数并作为对象属性使用?

当然可以实现!

你的需求完全没问题,只是当前代码里的this.{name}属于JavaScript语法错误,我们只需要调整成方括号表示法,就能轻松实现动态设置对象属性的功能。

修正后的完整代码示例:

function object() {
  this.somevalue = 1;
  this.somevalue2 = 1;
  this.updateAttribute = function(name, value) {
    // 用方括号包裹变量name,实现动态属性赋值
    this[name] = value;
  }
}

为什么这样能行?

JavaScript里访问对象属性有两种方式:

  • 点表示法:obj.propertyName,这种方式只能用固定的、提前写死的属性名
  • 方括号表示法:obj[propertyNameVariable],这种方式支持用变量或表达式来动态指定属性名,刚好匹配你要传入字符串作为属性名的需求

实际调用示例:

const myObj = new object();
// 更新已有属性
myObj.updateAttribute('somevalue', 10);
console.log(myObj.somevalue); // 输出:10

// 新增属性也完全支持
myObj.updateAttribute('customProp', '我是动态新增的属性');
console.log(myObj.customProp); // 输出:我是动态新增的属性

这样不管你传入什么字符串作为属性名,都能正确给对象设置对应的属性啦!

内容的提问来源于stack exchange,提问作者Islam ElHakmi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:08:37