显示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 相关文章推荐
自动检查并替换文本框内的字符
Jun 30 Javascript
js 编程笔记 无名函数
Jun 28 Javascript
Webkit的跨域安全问题说明
Sep 13 Javascript
jQuery中after的两种用法实例
Jul 03 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
Nov 12 Javascript
js动态调用css属性的小规律及实例说明
Dec 28 Javascript
基于javascript实现右下角浮动广告效果
Jan 08 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
Sep 27 Javascript
jQuery列表检索功能实现代码
Jul 17 jQuery
微信小程序项目总结之点赞 删除列表 分享功能
Jun 25 Javascript
详解vue使用插槽分发内容slot的用法
Mar 28 Javascript
Vue 引入AMap高德地图的实现代码
Apr 29 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年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
php读取excel文件的简单实例
2013/08/26 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
vue-loader中引入模板预处理器的实现
2019/09/04 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
使用Flask集成bootstrap的方法
2018/07/24 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
python基础教程之while循环
2019/08/14 Python
python为什么会环境变量设置不成功
2020/06/23 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
Hotels.com中国区:好订网
2016/08/18 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
竞选班长演讲稿
2013/12/30 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
上课说话检讨书500字
2014/11/01 职场文书
关于幸福的感言
2015/08/03 职场文书
公司车队管理制度
2015/08/04 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python