>  기사  >  웹 프론트엔드  >  변수를 사용하여 js 속성 names_javascript 기술을 동적으로 설정

변수를 사용하여 js 속성 names_javascript 기술을 동적으로 설정

WBOY
WBOY원래의
2016-05-16 16:33:281537검색

대상: js 속성 이름에 변수를 사용할 수 있습니다

예: js 객체 객체, 객체에 속성을 할당할 때 다음 방법을 사용할 수 있습니다

코드 복사 코드는 다음과 같습니다.

변수
object.prop1 = "값1";
object.prop2 = "값2"

다음 방법을 사용할 수도 있습니다.
코드 복사 코드는 다음과 같습니다.

object.push({prop1:"value1"});
object.push({prop2:"value2"})

여기서 prop1은 속성 이름으로 사용되며 다음과 같이 직접 사용하거나 따옴표로 묶을 수 있습니다.
코드 복사 코드는 다음과 같습니다.

object.push({"prop1":"value1"})

표현식의 의미는 동일합니다. 즉, prop1은 상수로만 인식될 수 있으며 변수이더라도 쓸모가 없습니다. 예:
코드 복사 코드는 다음과 같습니다.

var prop1 = "prop2"
object.push({prop1:"value1"})

다음과 같은 방식으로 객체를 통해 prop2에 액세스하면 어떻게 되나요?
코드 복사 코드는 다음과 같습니다.
Alert(object.prop2)

물어볼 필요는 없습니다. 물론 정의되지 않았지만 object.prop1에 액세스하는 것은 "value1"입니다

이유는 이미 언급했습니다. 인용문 포함 여부에 관계없이 속성은 상수로 처리됩니다.


var arr=[]; arr['js']='jquery'
arr['css']='oocss'
var obj={}; for(var i in arr)
{

obj.i=arr[i]
}
경고(obj.js)



독자 여러분, 어떤 경고가 인쇄될지 추측해 보세요.

물론 정의되지 않았습니다.

다시 추측해 보세요. 경고(obj.i)가 발생하면 무엇이 인쇄될까요?

물론 oocss입니다. 왜죠? 이제 obj에는 하나의 속성 i만 있고 두 개의 루프를 통해 obj.i의 앞 부분을 후자로 덮어쓰게 됩니다.

요구가 있는 경우 속성을 동적으로 추가해야 합니다. 즉, 위의 예제 코드와 같이 Alert(obj.js)는 정의되지 않은 것이 아니라 jquery입니다. 수정하시겠습니까?


코드 복사

코드는 다음과 같습니다. var arr=[]; arr['js']='jquery' arr['css']='oocss'
var obj={}; for(var i in arr)
{

obj[i]=arr[i]
}
경고(obj.js)

객체 obj를 배열로 처리하면 첨자와 유사한 메서드를 사용하여 객체에 속성과 속성 값을 할당할 수 있습니다. 그러나 객체는 여전히 객체이고 obj.length는 존재하지 않습니다. >

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