JScript 객체의 expando 속성을 가져오는 방법
object에 있는hasOwnProperty 방법은 JScript 대상의expando 속성을 얻을 수 있고 for in을 통해 역대로 실현할 수 있다.코드는 다음과 같습니다.
<script type="text/javascript">
Object.prototype.Clone = function() {};
Object.prototype.Call = function() {};
Object.prototype.OtherMethod = function(){};
Object.prototype.getExpandoNames = function() {
var values = new Array();
var obj = new this.constructor();
for(var i in this) {
if(obj[i]!=this[i]) {
values.push(i);
}
}
return values;
}
var objMap = {};
objMap['abc'] = '1.abc';
objMap['def'] = '2.def';
objMap['ghi'] = '3.ghi';
objMap['jkl'] = '4.jkl';
var exp_names = objMap.getExpandoNames();
document.write("<br> Expando , prototype <br>");
for(var i=0;i<exp_names.length;i++) {
document.write("name: "+exp_names[i]+", value: "+objMap[exp_names[i]]+"<br>");
}
</script>
hashtable를 모방하려면 키와 대응하는name를 가져오면 이렇게 쓸 수 있습니다.
<script type="text/javascript">
Object.prototype.Clone = function() {};
Object.prototype.Call = function() {};
Object.prototype.OtherMethod = function(){};
Object.prototype.getExpandoValues = function() {
var values = new Array();
var obj = new this.constructor();
for(var i in this) {
if(obj[i]!==this[i]) {
values.push({"name":i, "value":this[i]});
}
}
return values;
}
var objMap = {};
objMap['abc'] = '1.abc';
objMap['def'] = '2.def';
objMap['ghi'] = '3.ghi';
objMap['jkl'] = '4.jkl';
//var map_o = objMap['getExpandoValues']();
var map_o = objMap.getExpandoValues();
document.write("map_o.length: "+map_o.length+"<br>");
for(var i=0;i<map_o.length;i++) { // Expando , prototype
document.write("name: "+map_o[i].name+", value: "+map_o[i].value+"<br>");
}
// , Expando prototype
for(var item in map_o){
document.write("key: "+map_o[item].name+", map[key]: "+map_o[item].value +"<br>");
}
for(var item in objMap){// Expando prototype
document.write(item+"<br>");
}
</script>
맵의 키와value가 필요하지 않으면 이렇게 번거롭게 하지 말고hasOwnProperty 속성을 사용하면 됩니다.
<script type="text/javascript">
Object.prototype.Clone = function() {};
Object.prototype.Call = function() {};
Object.prototype.OtherMethod = function(){};
function GetExpandoValues(map)
{
var values = [];
for ( var key in map )
{
if ( map.hasOwnProperty(key) )
{
values.push(map[key]);
}
}
return values;
}
var objMap = {};
objMap['abc'] = '1.abc';
objMap['def'] = '2.def';
objMap['ghi'] = '3.ghi';
objMap['jkl'] = '4.jkl';
var b =GetExpandoValues(objMap);
document.write("<br> hasOwnProperty <br>b.length:"+b.length);
document.write("<br>b"+b);
</script>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
localStorage에 객체를 추가하는 방법은 무엇입니까?이 노트에서는 localStorage에 객체를 삽입하는 방법을 보여드리겠습니다. 경우에 따라 로컬 스토리지 또는 세션 스토리지에 데이터를 개체로 저장해야 할 수 있습니다. 어떻게 이것을 달성할 수 있습니까? 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.