显示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 Math.random()随机数函数
Nov 04 Javascript
使用ExtJS技术实现的拖动树结点
Aug 05 Javascript
ExtJs的Date格式字符代码
Dec 30 Javascript
尝试动手制作javascript放大镜效果
Dec 25 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
May 13 Javascript
easyui messager alert 三秒后自动关闭提示的实例
Nov 07 Javascript
jQuery中each循环的跳出和结束实例
Aug 16 jQuery
vue.js使用v-if实现显示与隐藏功能示例
Jul 06 Javascript
vue移动端下拉刷新和上拉加载的实现代码
Sep 08 Javascript
JavaScript实现的联动菜单特效示例
Jul 08 Javascript
微信小程序防止多次点击跳转(函数节流)
Sep 19 Javascript
vue路由切换时取消之前的所有请求操作
Sep 01 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
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
javascript数据类型详解
2017/02/07 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
深入浅出es6模板字符串
2017/08/26 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
Python获取服务器信息的最简单实现方法
2015/03/05 Python
python实现校园网自动登录的示例讲解
2018/04/22 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
护士求职推荐信范文
2013/11/23 职场文书
创先争优制度
2014/01/21 职场文书
公司寄语大全
2014/04/10 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
事业单位年度考核评语
2014/12/31 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
元旦晚会开场白
2015/05/29 职场文书
高中运动会广播稿
2015/08/19 职场文书
网络研修随笔感言
2015/11/18 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
nginx优化的六点方法
2021/03/31 Servers
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python
SQLServer之常用函数总结详解
2021/08/30 SQL Server
Oracle安装TNS_ADMIN环境变量设置参考
2021/11/01 Oracle