显示js对象所有属性和方法的函数


Posted in Javascript onOctober 16, 2009

要想看到实际效果,可以先声明一些属性跟方法,否则是看不到,仔细往下看有例子的。

function ShowObjProperty(Obj) 
{ 
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中仅改变指定的样式,而其他样式不会改变,得到了所要的结果。^-^
Javascript 相关文章推荐
javascript学习网址备忘
May 29 Javascript
JavaScript RegExp方法获取地址栏参数(面向对象)
Mar 10 Javascript
Javascript 面向对象编程(一) 封装
Aug 28 Javascript
JavaScript实现多维数组的方法
Nov 20 Javascript
JavaScript异步编程Promise模式的6个特性
Apr 03 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 Javascript
javascript如何定义对象数组
Jun 07 Javascript
jQuery查找dom的几种方法效率详解
May 17 jQuery
微信小程序多音频播放进度条问题
Aug 28 Javascript
vue如何获取自定义元素属性参数值的方法
May 14 Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 Javascript
js实现移动端吸顶效果
Jan 08 Javascript
半角全角相互转换的js函数
Oct 16 #Javascript
JavaScript 三种创建对象的方法
Oct 16 #Javascript
JQuery困惑—包装集 DOM节点
Oct 16 #Javascript
JavaScript 对象成员的可见性说明
Oct 16 #Javascript
Javascript 圆角div的实现代码
Oct 15 #Javascript
IE Firefox 使用自定义标签的区别
Oct 15 #Javascript
JavaScript 基础知识 被自己遗忘的
Oct 15 #Javascript
You might like
星际争霸任务指南——神族
2020/03/04 星际争霸
建立文件交换功能的脚本(三)
2006/10/09 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
2013/06/06 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
PHP强制转化的形式整理
2020/05/22 PHP
js 操作css实现代码
2009/06/11 Javascript
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
15个非常实用的JavaScript代码片段
2016/12/18 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
Python读取properties配置文件操作示例
2018/03/29 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
详解Python中第三方库Faker
2020/09/25 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
2014年社区个人工作总结
2014/12/02 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python
深入浅析Django MTV模式
2021/09/04 Python