// myObject 객체와 sitename, siteurl, sitecontent 세 가지 속성을 만듭니다. var myOb"/> // myObject 객체와 sitename, siteurl, sitecontent 세 가지 속성을 만듭니다. var myOb">

 >  기사  >  웹 프론트엔드  >  모든 객체 속성 및 값을 탐색하기 위한 Ajax 반사 메커니즘 및 코드에 대한 자세한 설명

모든 객체 속성 및 값을 탐색하기 위한 Ajax 반사 메커니즘 및 코드에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-21 13:33:571278검색

for...in 루프의 Javascript 예:

<html>
<head>
<title>一个使用到for...in循环的Javascript示例</title>
</head>
<body>
<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("属性 &#39;" + prop + "&#39; 为 " + myObject[prop]);
document.write("<br>");
}
</script>
</body>
</html>
/*
* 用来遍历指定对象所有的属性名称和值
* 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 프로그래밍에서는 인터페이스 요소의 스타일을 동적으로 변경해야 하는 경우가 많습니다. 예를 들어 배경색을 빨간색으로 변경하려면 다음과 같이 작성하면 됩니다.

element.style.backgroundColor="#ff0000";

기본적으로 CSS의 모든 속성은 JavaScript에서 사용할 수 있습니다.

function setStyle(_style){
//得到要改变样式的界面对象
var element=getElement();
element.style=_style;
}

전체 스타일 객체를 직접 전달합니다. 매개변수로:

var style={
color:#ffffff,
backgroundColor:#ff0000,
borderWidth:2px
}

이때 함수를 다음과 같이 호출할 수 있습니다:
setStyle(style);

또는 다음과 같이 직접 작성할 수 있습니다:

setStyle({ color:#ffffff,backgroundColor:#ff0000,borderWidth:2px});

이 코드는 문제가 없는 것처럼 보이지만 실제로 _style 매개변수는 setStyle 함수 내에서 element.style에 값을 할당하는 데 사용됩니다. 요소에 원래 다음이 있는 경우 예를 들어 실행되었습니다.
element.style.height="20px";

그러나 _style에는 다음이 포함되지 않습니다. 높이 정의로 인해 요소의 높이 스타일이 손실되며 이는 원래 원하는 결과가 아닙니다. 이 문제를 해결하려면 반사 메커니즘을 사용하여 setStyle 함수를 다시 작성할 수 있습니다.

function setStyle(_style){
//得到要改变样式的界面对象
var element=getElement();
for(var p in _style){
element.style[p]=_style[p];
}
}

프로그램은 _style의 각 속성을 탐색하여 속성 이름을 얻은 다음 대괄호 구문을 사용하여 element.style의 해당 속성을 _에 할당합니다. 스타일의 해당 속성


위 내용은 모든 객체 속성 및 값을 탐색하기 위한 Ajax 반사 메커니즘 및 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.