js对象如何通过变量读取属性

本文介绍了JavaScript中通过.和[]操作符读取对象属性的基本方法,并探讨了如何在函数中动态根据参数属性名修改对象值。通过实例演示了`obj.a`的undefined行为以及使用[type]访问对象属性的技巧。
摘要由CSDN通过智能技术生成

先看看js读取属性的常见的方法。

1.通过.的方式读取

let obj = {
  name:"javascript",
  price:20000
}
console.log(obj.name,obj.price)

2.通过[变量名]的方式读取

let obj = {
  name:"javascript",
  price:20000
}
console.log(obj['name'],obj['price'])

如果有这样一段代码,输出结果会是什么呢?

let a = 'name
let obj = {
    name:"javascript"
}
console.log(obj.a)

结果如下:

为什么是undefined,而不是JavaScript,英文obj.a的意思是obj['a'],他是去找obj里面的a这个属性,而不会把a当作一个变量,这是关键。如果是obj[a]的话结果就是'javascript' ,obj[a]等价于obj['name']等价于obj.name。

 

好,如果我们要给一个函数传参数,参数是一个对象,对象的属性是一个变量该如何传递。看下面的代码。

//这是一个将表格中某一个输入框内的小写字母变为大写字母的函数
const lowerToUpper = (type,value)=>{
    //form1就是那个表格,setFieldsValue是改变表格值的方法,参数是一个对象,你想要改变那个一输入框的值,就把该输入框的name属性的值当作key,输入框的值当作value传递.
   /*
    form1.setFieldsValue({
      password:value.toUpperCase()//就是把name值为password的输入框的值改为大写
    })
    */

    //当传递的type不同时,要进行改变的输入框也就不同(可能是在操作不同的输入框),这时候我们读取type值作为对象的属性就要使用[type]的方法才能正确拿到不同的属性
    form1.setFieldsValue({
      [type]:value.toUpperCase()
    })
  }

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值