显示js对象所有属性和方法的函数
{
var PropertyList='';
var PropertyCount=0;
for(i in Obj){
if(Obj.i !=null)
PropertyList=PropertyList+i+'属性:'+Obj.i+'\r\n';
else
PropertyList=PropertyList+i+'方法\r\n';
}
alert(PropertyList);
}
<script type="text/javascript">
// 创建一个对象 myObject 以及三个属性 sitename, siteurl, sitecontent。
var myObject = new Object();
myObject.sitename = "布啦布啦";
myObject.siteurl = "blabla.cn";
myObject.sitecontent = "网页教程代码图库的中文站点";
//遍历对象的所有属性
for (prop in myObject)
{
document.write("属性 '" + prop + "' 为 " + myObject[prop]);
document.write("
");
}
</script>
今天网上Java Tang博客找到了一个用来遍历JavaScript某个对象所有的属性名称和值的方法,这样想使用方法的时候非常的直观和方便。代码如下:
/*
* 用来遍历指定对象所有的属性名称和值
* obj 需要遍历的对象
* author: Jet Mah
*/
function allPrpos ( obj ) {
// 用来保存所有的属性名称和值
var props = "" ;
// 开始遍历
for ( var p in obj ){
// 方法
if ( typeof ( obj [ p ]) == " function " ){
obj [ p ]() ;
} else {
// p 为属性名称,obj[p]为对应属性的值
props += p + " = " + obj [ p ] + " \t " ;
}
}
// 最后显示所有的属性
alert ( props ) ;
}
AJAX的JavaScript的反射机制,反射机制指的是程序在运行时能够获取自身的信息。例如一个对象能够在运行时知道自己有哪些方法和属性。 在JavaScript中利用for(…in…)语句实现反射,其语法如下:
for(var p in obj){
//语句
}
在Ajax编程中,经常要能动态的改变界面元素的样式,这可以通过对象的style属性来改变,比如要改变背景色为红色,可以这样写:
element.style.backgroundColor="#ff0000";
基本上CSS里拥有的属性在JavaScript中都能够使用:
function setStyle(_style){
//得到要改变样式的界面对象
var element=getElement();
element.style=_style;
}
直接将整个style对象作为参数传递了进来:
var style={
color:#ffffff,
backgroundColor:#ff0000,
borderWidth:2px
}
这时可以这样调用函数:
setStyle(style);
或者直接写为:
setStyle({ color:#ffffff,backgroundColor:#ff0000,borderWidth:2px});
这段代码看上去没有任何问题,但实际上,在setStyle函数内部使用参数_style为element.style赋值时,如果element原先已经有了一定的样式,例如曾经执行过:
element.style.height="20px";
而_style中却没有包括对height的定义,因此element的height样式就丢失了,不是最初所要的结果。要解决这个问题,可以用反射机制来重写setStyle函数:
function setStyle(_style){
//得到要改变样式的界面对象
var element=getElement();
for(var p in _style){
element.style[p]=_style[p];
}
}
程序中遍历_style的每个属性,得到属性名称,然后再使用方括号语法将element.style中的对应的属性赋值为_style中的相应属性的值。从而,element中仅改变指定的样式,而其他样式不会改变,得到了所要的结果。^-^
转载于:https://www.cnblogs.com/goody9807/archive/2012/11/23/2784215.html
显示js对象所有属性和方法的函数相关推荐
- 161227、js显示对象所有属性和方法的函数
要想看到实际效果,可以先声明一些属性跟方法,否则是看不到,仔细往下看有例子的. function ShowObjProperty(Obj) { var PropertyList=''; var Pro ...
- as3遍历对象所有属性的方法
as3遍历对象所有属性的方法(包含Flex) 1.所有对象,包括静态属性和动态属性 ObjectUtil.getClassInfo(this._arr[0]).properties as Array ...
- Js对象如何添加方法、查看Api
js万物皆对象,要带着观察对象的眼观去看待每一个函数.变量. 为什么要用到原型? Es6以前,js中没有如ooa编程当中的class,但是要用到类,怎么办呢,构造函数就应运而生,但是构造函数里面添加方 ...
- JS 对象直接量方法创建对象
以前在进行软件开发的时候,我一直都是用全局变量来进行函数之间的通信,因为当时学习并理解的方法也就这种方便快捷易懂,不过写多了之后发现,使用全局变量其实有比较多的坏处: 在开发的初期阶段,一般是先搭建框 ...
- 多个html网页共享变量,多个jsp页面共享一个js对象的超级方法
今天,在项目中遇到一个问题,两个js页面要共享一个就js对象.js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了.而LZ又不想用cookie来存放,一是不安全,二个人喜好.最后发现一种超级方 ...
- vue js对象拷贝的方法简单易用
对象拷贝的方法是一个难点,尤其是深拷贝.建议把代码都运行下,帮助理解拷贝. 一. json方法 适合情况: JSON对象的深度克隆.方法是先JSON.stringify() 转为json字符串, 再 ...
- JS对象——数组处理方法filter方法
filter()方法 1.filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素(如果没有符合条件则返回空数组). 注意 filter()方法不会对空数组进行检测, ...
- js复制html样式,js对象深拷贝的方法
js 怎么把对象深拷贝到另一个对象 buy:function(buyList){buyList.forEach(function(good){good.farmer=this;});},buy是Far ...
- JS对象 - Array属性方法汇总
属性名 描述 prototype 为对象添加属性.方法 constructor 返回数组对象引用 length 返回数组元素数目 方法名 描述 返回 更改原数组 concat() 连接多个数组 连接后 ...
最新文章
- 前端面试官,我为什么讨厌你。
- 5款实用的硬盘、SSD固态硬盘、U盘、储存卡磁盘性能测试工具绿色版
- 获取套接字相关联信息
- 你们都被电视剧版的 《西游记》给骗了!| 今日趣图
- kafka修改默认端口号
- ironpython不想要可以卸载吗_IronPython的致命弱点
- poi excel 导入导出
- python画图小实例_Python画高斯分布图形实例代码
- 【机器学习系列】MCMC第四讲:Metropolis Hastings采样算法
- javaScript入门
- matlab yalmip cplex,matlab – CPLEX YALMIP – “未找到解算器”?
- QAM识别算法matlab,16qam调制识别matlab
- 什么是数据湖?为什么需要数据湖?
- 基于51单片机的交通灯控制系统课程设计(含proteus仿真图及代码)
- 编程序也得劳逸结合,不能太累。。。
- Microsoft Office 2016 和 Visio 2016 自定义安装的安装包 非即装即用版本
- 游戏专题类,web网页模板分享,前端期末作业,静态页面,带轮播图,登录页
- 后台找gridview里面的控件id_Windows系统有此缺陷:没设ID的,就是1001?+Windows编程如何解决...
- Windows10家庭版如何获取administrators的权限
- 五种常见户外LED显示屏模组故障维修方法
热门文章
- GraphLab:新的面向机器学习的并行框架
- mvdr波束形成原理_有了波束赋形这个5G黑科技,让你畅享飞一样的网速
- linux 修改文件夹权限_Linux文件权限 - Understanding Linux File Permissions
- 服务器下最大能容量多少文件,windows下一个文件夹下面最多可以放多少文件(ntfs格式略过)...
- php 文件上传框架,Laravel框架实现文件上传的方法分析
- cypress离线安装_【拆一个高端货】 美国NI公司 GPIB-USB转接卡 长标题
- Broker 的 Heap Size 如何设置?
- clickhouse入门与安装
- hive建表报错JsonSerDe
- 用ado.net取数据库中table、column的信息