Javascript는 new 연산자를 사용하지 않고 객체를 생성할 수 있습니다. 방법: 1. "var objectName={속성 이름 1: 값 1, 속성 이름 2: 값 2,...};"를 사용합니다. .create(프로토타입 개체, 설명자)" 문입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
객체 직접 수량
직접 수량을 사용하면 객체를 빠르게 생성할 수 있으며 가장 효율적이고 간단한 방법이기도 합니다. 구체적인 사용법은 다음과 같습니다.
var objectName = { 属性名1 : 属性值1, 属性名2 : 属性值2, ... 属性名n : 属性值n };
객체 리터럴에서 속성 이름과 속성 값은 콜론으로 구분됩니다. 속성 값은 모든 유형의 데이터일 수 있으며 속성 이름은 JavaScript 식별자 또는 문자열 표현식일 수 있습니다. 속성은 쉼표로 구분되며 마지막 속성 끝에는 쉼표가 필요하지 않습니다.
예제 1
다음 코드는 객체 리터럴을 사용하여 두 객체를 정의합니다.
var o = { //对象直接量 a : 1, //定义属性 b : true //定义属性 } var o1 = { //对象直接量 "a" : 1, //定义属性 "b" : true //定义属性 }
예 2
속성 값은 모든 유형의 값일 수 있습니다. 속성 값이 함수인 경우 속성을 메서드라고도 합니다.
var o = { //对象直接量 a : function () { //定义方法 return 1; } }
예제 3
속성 값이 객체인 경우 중첩된 구조 객체를 디자인할 수 있습니다.
var o = { //对象直接量 a : { //嵌套对象 b : 1 } }
예제 4
속성이 포함되어 있지 않으면 빈 객체를 정의할 수 있습니다.
var o = {} //定义一个空对象直接量
Object.create 사용
Object.create는 인스턴스 객체를 생성하는 데 사용되는 ECMAScript 5의 새로운 정적 메서드입니다. 이 메소드는 객체의 프로토타입과 객체 속성을 지정할 수 있습니다. 구체적인 사용법은 다음과 같습니다.
Object.create(prototype, descriptors)
매개변수 설명은 다음과 같습니다.
prototype: 프로토타입 개체를 지정하는 필수 매개변수이며 null일 수 있습니다.
descriptors: 선택적 매개변수, 하나 이상의 속성 설명자를 포함하는 JavaScript 개체입니다. 속성 설명자에는 데이터 속성과 접근자 속성이 포함되어 있으며, 여기서 데이터 속성은 아래에 설명되어 있습니다.
value: 속성 값을 지정합니다.
writable: 기본값은 false이며, 속성 값을 쓸 수 있는지 여부를 설정합니다.
enumerable: 기본값은 false입니다. 속성이 열거 가능한지(for/in) 여부를 설정합니다.
configurable: 기본값은 false이며, 속성 특성을 수정하고 속성을 삭제할 수 있는지 여부를 설정합니다.
접근자 기능에는 다음과 같이 간략하게 설명된 두 가지 메서드가 포함되어 있습니다.
set(): 속성 값을 설정합니다.
get(): 속성 값을 반환합니다.
예제 1
다음 예에서는 Object.create를 사용하여 객체를 정의하고, null을 상속하며, 각각 "large" 및 "round" 속성 값을 갖는 두 개의 열거 가능한 속성 size 및 shape를 포함합니다.
var newObj = Object.create (null, { size : { //属性名 value : "large", //属性值 enumerable : true //可以枚举 }, shape : { //属性名 value : "round", //属性值 enumerable : true //可以枚举 } }); console.log(newObj.size); //large console.log(newObj.shape); //round console.log(Object.getPrototypeOf(newObj)); //null
예제 2
다음 예에서는 Object.create를 사용하여 객체 리터럴과 동일한 프로토타입을 가진 객체를 정의합니다.
var obj = Object.create(Object.prototype, { //继承Obj.prototype原型对象 x : { value : undefined, //属性值 writable : true, //可写 configurable : true, //可以配置 enumerable : true //可以枚举 } }); console.log("obj.prototype = " + Object.getPrototypeOf(obj)); //"obj.prototype =[object, Object]" Object.getPrototypeOf() 函数可获取原始对象的原型。如果要获取对象的属性描述符,可以使用 Object.getOwnPropertyDescriptor() 函数。
예제 3
다음 예에서는 객체를 정의하고 접근자 속성 b를 사용하여 데이터 속성 a를 읽고 씁니다.
var obj = Object.create(Object.prototype, { a : { //数据属性a writable : true, value : "a" }, b : { //访问器属性b get : function () { return this.a; }, set : function (value) { this.a = value; }, } }); console.log(obj.a); //"a" console.log(obj.b); //"a" obj.b = 20; console.log(obj.b); //20
【관련 추천: 자바스크립트 학습 튜토리얼】
위 내용은 javascript가 new를 사용하지 않고 객체를 생성할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!