显示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星级插件、支持页面中多次使用
Mar 25 Javascript
jquery事件与函数的使用介绍
Sep 29 Javascript
jQuery判断复选框是否勾选的原理及示例
May 21 Javascript
jQuery实现可编辑的表格实例讲解(2)
Sep 17 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
Dec 04 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
jQuery Ajax实现跨域请求
Jan 21 Javascript
JavaScript模拟实现封装的三种方式及写法区别
Oct 27 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
Dec 06 Javascript
vue实现点击按钮下载文件功能
Oct 11 Javascript
JavaScript实现页面动态验证码的实现示例
Mar 23 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下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
php生成RSS订阅的方法
2015/02/13 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
Python实现抓取网页并且解析的实例
2014/09/20 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
浅谈Python爬虫基本套路
2019/03/25 Python
Django如何将URL映射到视图
2019/07/29 Python
基于python实现学生信息管理系统
2019/11/22 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
python实现全排列代码(回溯、深度优先搜索)
2020/02/26 Python
Python telnet登陆功能实现代码
2020/04/16 Python
python的launcher用法知识点总结
2020/08/07 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
考试没考好检讨书
2014/01/31 职场文书
求职信需要的五点内容
2014/02/01 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
国庆横幅标语
2014/10/08 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
关于Numpy之repeat、tile的用法总结
2021/06/02 Python