`

使用变量动态设置js的属性名

 
阅读更多
js的属性名可以使用变量,例如js对象object,当赋给该对象属性的时候可以采用以下方式,比较实用,需要的朋友可以看看
 

目标:js的属性名可以使用变量

举例:js对象object,当赋给该对象属性的时候可以采用以下方式

复制代码代码如下:

var object; 
object.prop1 = "value1";
object.prop2 = "value2"; 

也可以采用如下方式: 
复制代码代码如下:

object.push({prop1:"value1"});
object.push({prop2:"value2"}); 

在这里prop1 作为属性名称,可以直接用,也可以加上引号,比如: 
复制代码代码如下:

object.push({"<span style="font-family: Arial, Helvetica, sans-serif;">prop1</span>":"value1"}); 

表达的含义都是一样的,也就是说,prop1只能作为常量被识别,即使它是个变量也没用,例如: 
复制代码代码如下:

var prop1 = "prop2"; 
object.push({prop1:"<span style="font-family: Arial, Helvetica, sans-serif;">value1</span>"}); 

这样通过object访问prop2会出现什么情况呢?比如: 
复制代码代码如下:

alert(<span style="font-family: Arial, Helvetica, sans-serif;">object.prop2) </span> 

不用问,当然是undefined,而访问object.prop1却是"value1"

 

原因已经说过了,无论加不加引号,属性一律当成常量对待.再举一个例子:

复制代码代码如下:

var arr=[]; 
arr['js']='jquery'; 
arr['css']='oocss'; 
var obj={}; 
for(var i in arr) 
{

 

obj.i=arr[i]; 

alert(obj.js); 

 

读者不放猜一下alert会打印什么?

当然是undefined.

大家再猜一下,如果alert(obj.i)会打印什么?

当然是oocss,为什么?因为obj现在只有一个属性i,而且通过两次循环,obj.i前面的被后面的覆盖掉.

如果有需求,需要动态添加属性,也就是说,属性也必须是一个变量才行,如上例代码,alert(obj.js)不是undefined,而是jquery,该如何修改呢?

复制代码代码如下:

var arr=[]; 
arr['js']='jquery'; 
arr['css']='oocss'; 
var obj={}; 
for(var i in arr) 
{

 

obj[i]=arr[i]; 

alert(obj.js); 


就是那么简单!把对象obj当成一个数组来对待,它支持使用类似于下标形式的方法来把属性和属性值赋给对象.但是,对象依然是对象,obj.length是不存在的. 
分享到:
评论

相关推荐

    小程序中使用css var变量(使js可以动态设置css样式属性)

    主要介绍了小程序中使用css var变量,使js可以动态设置css样式属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Sassmixin准备切换到使用CSS自定义属性又名CSS变量

    Sass mixin准备切换到使用CSS自定义属性(又名CSS变量)

    VUE.js实现动态设置输入框disabled属性

    今天小编就为大家分享一篇VUE.js实现动态设置输入框disabled属性,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    js delete 用法(删除对象属性及变量)

    1,对象属性删除 function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.name);//mm delete obj.name; console.log(obj.name); //undefined 2,变量删除 var name = 'lily'; delete name; ...

    深入理解变量作用域

    当然我们知道全局变量是全局对象的属性,而局部变量是一个特殊的调用对象的属性,那么我们就可以再次关注一下变量作用域的表示法,对它进行再定义。有关作用域的新描述给理解多环境下的变量提供了一种有用的方法,它...

    微信小程序关于变量对象data 和 前端wxml取后台js变量值

    第二,定义JS页面中的页面局部变量,使其整个页面中可使用或调用 对象data定义的变量支持各种数据类型,string,int,[],{} **第一.**wxml数据渲染,只要通过设置data值(this.setData({...}))即可 如: wxml页面:...

    JS学习之变量、数据类型比较

    (2)JavaScript的标识符:变量、函数、属性的名字,或者函数的参数。 标识符的命名规则: 由字母、数字、下划线(_)或美元符号($)组成; 不能以数字开头; 不能使用关键字(如if、for)、保留字(如class)等作为...

    浅析JavaScript声明变量

    JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性。例如: function test(){ myname = "huming"; alert&#40;myname&#41;; } test(); // "huming" alert&#40;myname&#41;; //...

    windows 下安装nodejs 环境变量设置

    要设置两个东西,一个是PATH上增加node.exe的目录C:\Program Files\nodejs,一个是增加...计算机(或者我的电脑)右击属性-》高级系统设置-》环境变量。 新建一个用户变量。 变量名:NODE_PATH 值:C:\Program Files\n

    global-replacer:替换 javascript 代码中指定的全局变量及其属性

    一个脚本,用于替换 javascript 代码字符串中指定的全局变量及其属性。 特征 可以替换全局变量,即没有出现在任何局部作用域中的变量 可以替换全局变量的属性 可以将两者都替换为一个,例如[removed] -&gt; _window._l...

    javascript基础语法——全面理解变量和标识符

    关于javascript,第一个比较重要的概念是变量,变量的工作机制是javascript的基本特性。实际上,变量是标识符的一种。本文将详细介绍变量和标识符 定义  标识符(Identifier)就是一个名字,用来对变量、函数、属性、...

    ie11CustomProperties:IE11CSS变量(自定义属性)polyfill

    IE11CSS变量Polyfill Internet Explorer 11的最完整的“自定义属性” polyfill。 在大约70'000个 已停产 IE11的市场份额正在稳步下降。 我个人不再需要支持IE11。 这就是为什么我决定停止从事该项目的原因。 特征 ...

    javascript 显示全局变量与隐式全局变量的区别

    在JavaScript中,全局变量有两种声明方式 使用 var 显示声明的全局变量 不使用 var 声明的隐式全局变量 ...在 js 中全局变量其实是global对象(window)的属性,因此两种方式声明的全局变量都可以通过 window 拿

    微信小程序 两种为对象属性赋值的方式详解

    微信小程序两种为对象属性赋值的方式 对应config.wxml 阶段一 对应config.js data:{ //定义对象 configs:{} } //方式一 switchChange:function(e){ //为对象的某一属性赋值 configs.config1={ }; ...

    jQuery使用attr()方法同时设置多个属性值用法实例

    主要介绍了jQuery使用attr()方法同时设置多个属性值的用法,实例分析了jQuery中attr方法实现多个属性设置的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    javascript动态创建对象的属性详解

    面向对象的JavaScript在客户端编码时提供了极大的灵活性,Javascript对象上的属性有助于设置可在对象内使用以管理和使用数据的值。 我对JavaScript中属性的理解,在javascript中,可以通过在文字对象上定义变量来...

    JavaScript的变量声明与声明提前用法实例分析

    使用var关键词声明变量的作用域是当前的执行上下文,有可能是外围函数,或者,当变量声明在函数体之外时,则为全局变量。 向一个未声明变量赋值会隐式地将其创建为一个全局变量(它变成了全局对象的一个属性)。声明...

Global site tag (gtag.js) - Google Analytics