zoukankan      html  css  js  c++  java
  • js 通过对象属性名称获取属性值的注意要点

    1、不能是变量

    var obj = {};  
    obj.AttrName = 'Tom'
    

    注意:通过 对象.属性名 获取属性值的时候,属性名(AttrName )不能是一个变量。  

    2、可以是变量

    原始数据数组:

    var rawDataList = 
    [
        {
            "countDate": "2018-04-08",
            "countNum": "2"
        },
        {
            "countDate": "2018-04-18",
            "countNum": "2"
        },
        {
            "countDate": "2018-04-23",
            "countNum": "7"
        }
     ]
    

    处理上述数据:

    function Day2Mon2Year(dataList,prop){
    	for(var i = 0; i < dataList.length; i++){
    		var obj = rawDataList[i]
    		//报错:Uncaught TypeError: Cannot read property 'replace' of undefined
    		var dateAttr = obj.prop
    		//不报错:因为prop是变量,获取方式不能是通过.属性名称
    		var dateAttr = obj[prop]
    	}
    }
    //调用报错:Uncaught TypeError: Cannot read property 'replace' of undefined
    Day2Mon2Year.(rawDataList,'countDate');
    

    3、总结:
    一、如果属性名称是常量(固定值),获取属性值的方式有:

    • 对象.属性名称
    • 对象[属性名称]

    二、如果属性名称是一个变量(不固定值),获取属性值方式只能是:

    • 对象[属性名称]

      

      

  • 相关阅读:
    HDU 1525
    kmp模板
    hdu 4616 Game(树形DP)
    hdu 4619 Warm up 2(并查集活用)
    hdu 4614 Vases and Flowers(线段树加二分查找)
    Codeforces 400D Dima and Bacteria(并查集最短路)
    poj 2823 Sliding Window (单调队列)
    hdu 2196 Computer(树形dp)
    hdu 4604 Deque
    最短路径
  • 原文地址:https://www.cnblogs.com/ronghua/p/13164125.html
Copyright © 2011-2022 走看看