显示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 相关文章推荐
一些有关检查数据的JS代码
Sep 07 Javascript
node.js中的path.resolve方法使用说明
Dec 08 Javascript
Jquery网页内滑动缓冲导航的实现代码
Apr 05 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
Oct 28 Javascript
完美实现js焦点轮播效果(一)
Mar 07 Javascript
js中toString()和String()区别详解
Mar 23 Javascript
你有必要知道的10个JavaScript难点
Jul 25 Javascript
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
JavaScript复制变量三种方法实例详解
Jan 09 Javascript
JS实现可控制的进度条
Mar 25 Javascript
详解Node.js使用token进行认证的简单示例
May 25 Javascript
js实现右键弹出自定义菜单
Sep 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
php 方便水印和缩略图的图形类
2009/05/21 PHP
php上传文件的增强函数
2010/07/21 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
jQuery获取file控件中图片的宽高与大小
2016/08/04 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
关于Keras Dense层整理
2020/05/21 Python
解决pycharm 格式报错tabs和space不一致问题
2021/02/26 Python
网络维护管理员的自我评价分享
2013/11/11 职场文书
党委书记岗位职责
2013/11/24 职场文书
优秀中学生事迹材料
2014/01/31 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
女性励志书籍推荐
2019/08/19 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
导游词之西安骊山
2019/12/03 职场文书