[javascript] {} 또는 new Object ()를 사용하여 JavaScript로 빈 객체를 만드시겠습니까?
거기에 두 개의 서로 다른는JavaScript에서 빈 객체를 만드는 방법 가지가 있습니다.
var objectA = {}
var objectB = new Object()
스크립트 엔진이 처리하는 방법에 차이가 있습니까? 다른 것을 사용하는 이유가 있습니까?
마찬가지로 다른 구문을 사용하여 빈 배열을 만들 수도 있습니다.
var arrayA = []
var arrayB = new Array()
답변
사물
사용하는 이점이 없습니다 new Object();
– 반면, {};
코드를 더욱 작고, 더 읽기 쉽게 만들 수 있습니다.
빈 객체를 정의하는 것은 기술적으로 동일합니다. {}
구문은 짧고 깔끔한 (이하 자바 틱)이며, 즉시 개체 인라인을 채울 수 있습니다 -과 같이 :
var myObject = {
title: 'Frog',
url: '/img/picture.jpg',
width: 300,
height: 200
};
배열
배열의 경우, 예외를 제외하고 new Array();
over를 사용하면 거의 이점이 없습니다 [];
.
var emptyArray = new Array(100);
포함 된 모든 슬롯 100 항목 긴 배열을 생성 undefined
– 좋은 / (같은 특정 상황에서 유용 할 수있다 (new Array(9)).join('Na-Na ') + 'Batman!'
).
내 추천
- 절대 사용하지 마십시오
new Object();
-그것은 더{};
어리 석고 어리 석습니다. [];
미리 정의 된 길이로 “빈”배열을 빠르게 만들어야하는 경우를 제외하고 항상 사용하십시오 .
답변
예, 차이가 있습니다. 동일하지 않습니다. 동일한 결과를 얻을 수 있지만 엔진은 두 가지 방식으로 다르게 작동합니다. 그중 하나는 객체 리터럴이고 다른 하나는 생성자입니다. 자바 스크립트에서 객체를 만드는 두 가지 방법입니다.
var objectA = {} //This is an object literal
var objectB = new Object() //This is the object constructor
JS에서는 모든 것이 객체이지만 new Object ()를 사용하여 다음 사항에 대해 알고 있어야합니다. 매개 변수를 수신 할 수 있으며 해당 매개 변수에 따라 문자열, 숫자 또는 빈 오브젝트 만 작성합니다.
예를 들어 : new Object(1)
는 숫자를 반환합니다. new Object("hello")
문자열을 반환합니다. 즉, 개체 생성자가 매개 변수에 따라 개체 생성을 문자열, 숫자 등과 같은 다른 생성자에게 위임 할 수 있음을 의미합니다. 동적 데이터를 관리 할 때이 점을 명심해야합니다. 객체 생성
많은 제작자들은 특정 리터럴 표기법을 대신 사용할 수있을 때 객체 생성자를 사용하지 않는 것이 좋습니다. 여기서 생성하는 것이 코드에서 기대하는 것임을 확신 할 수 있습니다.
자세한 내용을 찾으려면 javascript의 리터럴 표기법과 생성자 간의 차이점에 대해 자세히 읽어 보는 것이 좋습니다.
답변
이것들은 최종 결과가 같지만 리터럴 구문을 사용하면 JSON 구문 (JavaScript 리터럴 객체 구문의 문자열 화 하위 집합)에 익숙해 지도록 도울 수 있으므로 추가하는 것이 좋습니다. .
다른 한 가지 : new
연산자 를 잊어 버린 경우 미묘한 오류가 발생할 수 있습니다 . 따라서 리터럴을 사용하면 해당 문제를 피할 수 있습니다.
궁극적으로 상황과 선호도에 따라 다릅니다.
답변
오브젝트 및 배열 리터럴 구문 {} / []은 JavaScript 1.2에서 도입되었으므로 4.0 이전의 Netscape Navigator 버전에서는 사용할 수 없으며 구문 오류가 발생합니다.
내 손가락은 여전히 새로운 Array ()를 말하지만, 나는 아주 노인입니다. 고맙게도 Netscape 3는 오늘날 많은 사람들이 고려해야 할 브라우저가 아닙니다 …
답변
var objectA = {}
내 경험상 훨씬 더 일반적으로 사용되므로 ‘표준’을 채택하고 일부 입력을 저장하는 것이 가장 좋습니다.
답변
나는 여기{}
에있는 자바 스크립트 비디오 중 하나 에서 좋은 코딩 규칙 으로 추천 되었다고 생각 합니다. 의사 클래식 상속에 필요합니다. 이 방법은 이것이 고전적인 객체 지향 언어가 아니라 프로토 타입 언어임을 상기시켜줍니다. 따라서 생성자 함수를 사용할 때만 실제로 필요한 시간 입니다. 예를 들면 다음과 같습니다.new
var obj = {};
new
var Mammal = function (name) {
this.name = name;
};
Mammal.prototype.get_name = function () {
return this.name;
}
Mammal.prototype.says = function() {
return this.saying || '';
}
그런 다음 다음과 같이 사용됩니다.
var aMammal = new Mammal('Me warm-blooded');
var name = aMammal.get_name();
반대로 사용 {}
하는 또 다른 이점 new Object
은 JSON 스타일 객체 리터럴을 수행하는 데 사용할 수 있다는 것입니다.
답변
배열 인스턴스화 성능
길이가없는 배열을 생성하려는 경우 :
var arr = [];
보다 빠르다 var arr = new Array();
특정 길이의 빈 배열을 만들려면
var arr = new Array(x);
보다 빠르다 var arr = []; arr[x-1] = undefined
;
벤치 마크를 보려면 다음을 클릭하십시오. https://jsfiddle.net/basickarl/ktbbry5b/
그러나 둘 다의 메모리 공간을 모르는 경우 new Array()
더 많은 공간 을 차지 한다고 상상할 수 있습니다 .