显示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 验证表单(form)中多选框(checkbox)值
Sep 08 Javascript
JS获得URL超链接的参数值实例代码
Jun 21 Javascript
js获取select标签的值且兼容IE与firefox
Dec 30 Javascript
js实现新浪微博首页效果
Oct 16 Javascript
使用javaScript动态加载Js文件和Css文件
Oct 24 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
Dec 17 Javascript
Javascript技术栈中的四种依赖注入详解
Feb 23 Javascript
js验证框架实现代码分享
May 18 Javascript
Bootstrap基本样式学习笔记之图片(6)
Dec 07 Javascript
JavaScript中for循环的几种写法与效率总结
Feb 03 Javascript
vue-cli构建vue项目的步骤详解
Jan 27 Javascript
Vue 列表页带参数进详情页的操作(router-link)
Nov 13 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
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
php学习之数据类型之间的转换介绍
2011/06/09 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
javascript Object与Function使用
2010/01/11 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
pandas如何处理缺失值
2019/07/31 Python
python几种常用功能实现代码实例
2019/12/25 Python
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
写好自荐信的要点
2013/11/06 职场文书
物流专业毕业生推荐信范文
2013/11/18 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
高中生学习计划书
2014/09/15 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书