내 프로젝트에서 자바 스크립트 언어 파일을 사용하고 있으며 모든 언어 키는이 객체 속성입니다. o_language['name'] = 'Name'
다음 하나의 .js 파일을 가지고 있는데, 각 파일은 단일 PHP보기에 대한 모든 기능을 포함하는 단일 개체입니다. loader.js에서자바 스크립트 성능 - 전역 변수
o_add_card = {
init: function(){...},
do_something: function(){..},
do_something_2: function(){..}
}
내가 필요한 모든 오브젝트를로드하고있어, 다음, 나는 몇 가지 다른 방법으로 언어를 호출 할 수 있지만 내가 가장 빠르고 이유 다 이해하지 못하는 것을 알고있다.
첫 번째 방법 - 글로벌 o_language를 사용할 수 있습니다. 예 :
o_add_card = {
init: function(){...},
do_something: function(){
alert(o_language['name']);
},
}
두 번째 방법 - 객체 속성에 할당 된 전역 o_language를 사용할 수 있습니다.
세 번째 방법 - 개체 속성에 할당 된 전역 o_language를 사용하여 함수 var를 만들 수 있습니다.
o_add_card = {
lang: o_language['name'],
init: function(){...},
do_something: function(){
var o_lang = this.lang;
alert(o_lang ['name']);
},
}
네 번째 방법 - 전역 변수 o_language를 변수에 할당 할 수 있습니다. 예 :
o_add_card = {
init: function(){...},
do_something: function(){
var o_lang = o_language['name'];
alert(o_lang ['name']);
},
}
편집 : 아마도 내가 더 잘 설명하려고합니다. 이론적 상황 :
<script>
global_o_language = {
name: 'name',
//... (approx 500 other properties)
}
global_o_add_card: {
lang: global_o_language,
init: function(){
this.function_1();
// ... other functions coming here
},
function_1: function(){
var o_lang = this.lang;
// I don't care about using dot or brackets here, but about using global or local var's
// I can use global variable straight
alert(global_o_language['name']);
// I can load global variable to object property and use it like that
alert(this.lang['name']);
//or create local variable inside function where I assign global one or `this` property
alert(o_lang['name']);
}
}
global_o_add_card.init();
</script>
나는 어떤 방법이 더 나은지 알고 싶습니다.
당신이 묻는 것이 확실하지 않지만 속성을 설정할 때 : lang : o_language [ 'name']'그러면이 속성을 사용합니다. 이것은 틀린'this.lang [ 'name']', 이것은 'this.lang'을 수정하십시오. 'o_language [ 'name']'속성에서 lang 속성을 지정합니다. 단, 그 속성이 잘못 사용하는 방식으로 객체를 반환하지 않는 한. 그렇지 않으면 나를 무시하십시오 –
가장 빠른 방법은 없지만 직접적인 속성 호출이 될 것 같습니다. 'this.object.property' over this.object [ 'property']' –
정말 수백만 번하고 있습니까? 그렇지 않다면,별로 중요하지 않을 것입니다. 성급하게 최적화를 중단하십시오. 예를 들어, 여기에 대한 속성 액세스 성능 테스트에서는 초당 1,154,538,876 개의 액세스가있었습니다. [일부 브라우저에서는 점이 현저히 빠르며 다른 사람들은 약간 더 빠릅니다] (http://jsperf.com/testaccessobjectnotation/2). –