显示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 相关文章推荐
jquery pagination插件实现无刷新分页代码
Oct 13 Javascript
JQuery.closest(),parent(),parents()寻找父结点
Feb 17 Javascript
EasyUI中datagrid在ie下reload失败解决方案
Mar 09 Javascript
jQuery标签编辑插件Tagit使用指南
Apr 21 Javascript
AngularJs  Understanding Angular Templates
Sep 02 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
jQuery实现可拖动进度条实例代码
Jun 21 jQuery
在一般处理程序(ashx)中弹出js提示语
Aug 16 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
Sep 11 Javascript
浅谈Vue 自动化部署打包上线
Jun 14 Javascript
vue 判断元素内容是否超过宽度的方式
Jul 29 Javascript
微信小程序弹窗禁止页面滚动的实现代码
Dec 30 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
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
QQ登录简单实现代码
2021/03/09 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
在求职信中如何凸显个人优势
2013/10/30 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
协议书模板
2014/04/23 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书