161227、js显示对象所有属性和方法的函数

要想看到实际效果,可以先声明一些属性跟方法,否则是看不到,仔细往下看有例子的。

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中仅改变指定的样式,而其他样式不会改变,得到了所要的结果。

时间: 2024-07-30 11:58:06

161227、js显示对象所有属性和方法的函数的相关文章

显示js对象所有属性和方法的函数

要想看到实际效果,可以先声明一些属性跟方法,否则是看不到,仔细往下看有例子的. 代码如下: 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

js object 对象 属性和方法的使用

1 //object 对象 属性和方法的使用 2 var person = new Object(); 3 4 person.name="张海"; 5 person.age="60"; 6 7 person.say=function(){ 8 console.log(person.name+"他在说话!"+"\t他已经"+person.age+"岁"); 9 }; 10 person.eat=functio

JS获取对象“属性和方法”的方法

平时在写的代码过程中,经常会遇到对对象Object的数据处理.而在对对象的数据处理中,操作最频繁的是“数据引用”.“值的修改”.“获取关键字(属性)”.平时最烦的也是“获取关键字”,经常忘记怎么去获取,这里做一下整理. 既然要"获取关键字",那么得首先有一个对象才行.创建对象的方式很多,我自己惯用的方式有三种: 1.通过原始构造函数 new Object();创建一个对象,然后赋值: var testObj= new Object(); testObj.name = "sha

JS获取对象“属性”的方法

1 var testObj= new Object(); 2 testObj.name = "shangguan"; 3 testObj.age= 25; 4 testObj.action = function () { 5 return this.name; 6 } 1.对象内置属性方法:Object.keys():该方法返回一个数组,数组内包括对象内可枚举属性以及方法名称. 1 var keys= Object.keys(testObj); 2 console.log(keys);

js属性对象的hasOwnProperty方法

object的 hasOwnPropetry 方法返回一个布尔值 ,判断对象是否包含特定的自身(非继承)属性. 所有继承了 Object 的对象都会继承到 hasOwnProperty 方法.这个方法可以用来检测一个对象是否含有特定的自身属性:和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性. 即使属性的值是 null 或 undefined,只要属性存在,hasOwnProperty 依旧会返回 true. 下面的例子检测了对象 o 是否含有自身属性 prop: o = new

JS获取对象长度的方法

对象数组是不可以用arr.length来获取长度的,如果需要长度的话,可以用这个方法: var num=0; //假设obj是一个对象数组 var obj={xxxxxxx}; 通过遍历对象的方法,每次遍历,num的值加1,遍历完了num的值就是对象的长度了. for(var i in obj){ num++; } return obj; 原文地址:https://www.cnblogs.com/xwenbin/p/10856869.html

JS中对象转数组方法总结

1.Array.from() 方法,用于数组的浅拷贝.就是将一个类数组对象或者可遍历对象转换成一个真正的数组.eg: let obj = { 0: 'nihao', 1: 'haha', 2: 'gansha', 'length': 3 } let arr = Array.from(obj) console.log(arr); tips: 1. object中必须有length属性,返回的数组长度取决于length长度         2.key 值必须是数值 2.Object.values(o

js获取对象位置的方法

scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度 offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度 offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 offsetTop:获取对象相

【转】js获取对象的所有属性和方法

//有时候需要知道一个js对像的所有属性和方法来帮助调试,下面是再网上找到的一个比较给力的方法 function displayProp(obj){ var names=""; for(var name in obj){ names+=name+": "+obj[name]+", "; } alert(names); } 转自 http://blog.csdn.net/clh604/article/details/8233812