金沙棋牌官方平台

当前位置:金沙棋牌 > 金沙棋牌官方平台 > 动态设置js的属性,面向对象金沙棋牌官方平台:

动态设置js的属性,面向对象金沙棋牌官方平台:

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-09-01 08:26

动态设置js的属性

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

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

var object;

object.prop1 = "value1";

object.prop2 = "value2";

也可以采用如下方式:

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

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

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

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

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

var prop1 = "prop2";

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

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

alert(object.prop2) 

不用问,当然是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是不存在的.

目标:js的属性名可以使用变量 举例:js对象object,当赋给该对象属性的时候可以采用以下方式 var object; object.prop1 = "value1";...

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

 目标: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是不存在的.  

目标:js的属性名可以使用变量 举例:js对象object,当赋给该对象属性的时候可以采用以下方式 代码如下: var obj...

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

javascript中的对象创建声明:
var obj = {}; 或者 var obj = new Object(); 
为对象加入属性,方法:
//=====第一种写法====================================
obj.name = '小明'; //为对象加属性
obj.updateName = function(name){//为对象定义updateName方法
this.name = name;
}
alert(obj.name);
obj.updateName("小强"); //调用updateName修改obj对象的name属性值
alert(obj['name']);
第一次显示结果为:小明
第二次显示结果为:小强
//=====第二种写法====================================
obj['name'] = '张三'; //为对象加属性
obj['updateName'] = function(name){//为对象定义updateName方法
obj['name'] =name;
}; 
alert(obj.name);
obj.updateName('李四'); //调用updateName修改obj对象的name属性值
alert(obj['name']);
第一次显示结果为:张三
第二次显示结果为:李四

相关文章

相关搜索:

今天看啥

搜索技术库

返回首页

  • 转:[Silverlight入门系列]使用MVVM模式(9): 想在
  • ASP.NET MVC中使用窗体验证出现上下文的模型在
  • 刚入门的easyui,入门easyui
  • checklistbox的使用,checklistbox使用
  • checklistbox的使用,checklistbox使用
  • WebGIS中解决使用Lucene进行兴趣点搜索排序的两

相关频道: HTML/CSS  HTML5  Javascript  jQuery  AJax教程  前端代码  正则表达式  Flex教程  WEB前端教程  

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

复制代码 代码如下:

帮客评论

复制代码 代码如下:

//=====第三种写法====================================
var obj = {
name: '王五', //为对象加属性
updateName: function(name){//为对象定义updateName方法
this.name = name;   
}
};
alert(obj .name);
obj.updateName("赵六"); //调用updateName修改obj对象的name属性值
alert(obj .name);

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

第一次显示结果为:王五
第二次显示结果为:赵六
//=====分析=====================================
第一种写法是最普通的对象写法,因为javascript是动态语言,与Java和.Net不同,
在程序运行并创建对象后,还可以对该对象的内部结构进行修改,
比如添加属性和方法(java和.net中的反射机制做不到这点)。
(a): var obj = {} || new Object();
(b):obj.name = "张三";
(c):obj.updateName = function(name){ this.name = name};
当程序执行(a) 后,便创建了一个空对象(不包含任何方法和属性)obj,
当程序执行(b) 后,改变了obj的内部结构,加了一个属性name,
当程序执行(c) 后,改变了obj的内部结构,加了一个方法updateName ,
而这都是在运行的时候完成的动作
第二种写法像数组,但绝不是数组,区分是不是数组可以如此判断:

也可以采用如下方式:

复制代码 代码如下:

复制代码 代码如下:

if(typeof(obj.length) == "undefined") {
alert("obj不是数组,数组都有length属性!");
}else{
alert("obj是数组!");
}

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

第二种写法更像一种数据结构:map ,如:obj[key] = value;
key是字符串,value可以是任何类型,变量,对象,函数等。
可以通过这种方式遍历对象内部结构:

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

复制代码 代码如下:

复制代码 代码如下:

for(var key in obj)
{
alert(key);
var value = obj[key];
alert(value);
}

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

通过alert可以显示出你所定义的内容。
第三种写法一看就是map的内部结构了,一个对象,内部完全用key : value键值对方式表示
JSON对象也是这种结构,只要对map或者JSON对象有所熟悉的就很容易理解了。

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

您可能感兴趣的文章:

  • js如何打印object对象
  • JavaScript 判断判断某个对象是Object还是一个Array
  • js中判断Object、Array、Function等引用类型对象是否相等
  • Javascript创建自定义对象 创建Object实例添加属性和方法
  • Nodejs学习笔记之Global Objects全局对象
  • Javascript中判断变量是数组还是对象(array还是object)
  • javascript object oriented 面向对象编程初步
  • js Object2String方便查看js对象内容
  • javascript 对象数组根据对象object key的值排序
  • 浅析JavaScript中的对象类型Object

复制代码 代码如下:

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是不存在的.

您可能感兴趣的文章:

  • js判断变量是否未定义的代码
  • 基于JavaScript 声明全局变量的三种方式详解
  • JS判断变量是否为空判断是否null
  • js判断变量是否空值的代码
  • js变量以及其作用域详解
  • Js检查变量类型的代码()
  • javascript中使用未定义变量或值的情况分析

本文由金沙棋牌发布于金沙棋牌官方平台,转载请注明出处:动态设置js的属性,面向对象金沙棋牌官方平台:

关键词:

上一篇:基础核心,jQuery基础核心

下一篇:没有了