JavaScript는 객체를 생성할 수 있습니다. 생성 방법: 1. 객체를 직접 생성하려면 Object를 사용하세요. 구문은 "new Object()"입니다. 2. new 키워드를 사용하여 객체를 생성하면 구문은 "new object name()"입니다. 객체를 생성하는 경우 구문은 "object={property" 이름: 속성 값,...}"입니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
JavaScript 객체는 다양한 값을 보유할 수 있는 변수입니다. 이는 관련 값 세트의 컨테이너 역할을 합니다. 예를 들어, 웹사이트 사용자와 은행 계좌의 청구서는 모두 JavaScript 객체가 될 수 있습니다.
JavaScript에서 객체에는 속성과 메서드라는 두 가지 유형의 값이 포함됩니다.
JavaScript 개체를 생성할 때 해당 개체의 이름, 속성 및 메서드를 정의해야 합니다.
JavaScript 객체 생성 방법:
1. Object를 사용하여 객체를 직접 생성합니다
var myObj=new Object();//使用Object类创建一个空的对象 myObj.name="wangshihcheng"; myObj.age=20; myObj.infor=function(){ document.write("名字:"+this.name);//this.的指向问题 document.write("年龄:"+this.age); } myObj.infor();//调用创建的对象里面的方法;
2. new 키워드를 사용하여 생성자를 호출하여 객체를 생성합니다.
코드는 다음과 같습니다. :
<script> var obj = new Object(); obj.name = "Kitty";//为对象增加属性 obj.age = 21; obj.showName = function () {//为对象添加方法 console.log(this.name); }; obj.showAge = function(){ console.log(this.age); }; obj.showName(); obj.showAge(); </script>
이 메소드는 new 키워드로 객체를 생성한 후, 동적 언어인 자바스크립트의 특성에 따라 속성과 메소드를 추가하여 객체를 구성합니다. this는 메소드가 호출되는 객체를 나타냅니다.
이 방법의 문제점은 객체를 여러 번 생성해야 하는 경우 코드를 여러 번 반복해야 하므로 코드 재사용에 도움이 되지 않는다는 것입니다.
3. 프로토타입 모드를 사용하여 객체 만들기
JavaScript에서 각 함수에는
Prototype 객체라고 하는 객체를 가리키는 포인터인 프로토타입 속성이 있습니다. 특정 유형. 모든 인스턴스 개체가 공유하는 속성 및 메서드
또한 이 개체에는 개체를 생성하는 생성자 메서드를 가리키는 내장 속성 생성자가 있습니다.
프로토타입 패턴을 사용하면 모든 인스턴스가 공유할 수 있습니다. 프로토타입 객체의 속성과 메소드,
따라서 생성자에서 객체 인스턴스의 정보를 초기에 정의할 필요가 없습니다.
function Student(){ } Student.prototype.name="wang"; Student.prototype.sex="man"; Student.prototype.class="5"; Student.prototype.sayName=function(){ console.log(this.name); } var s1=new Student(); s1.sayName();//wang var s2=new Student(); s2.sayName();//wang s2.name="shicheng"; s2.sayName();//shicheng
객체의 속성을 읽을 때 검색이 먼저 수행됩니다.
인스턴스에서 이 속성이 인스턴스에서 발견되면 검색이 종료되고 해당 속성의 값이 반환됩니다.
인스턴스에서 발견되지 않으면 계속 확장합니다. 객체의 프로토타입 객체를 검색하고 이 속성이 프로토타입에서 발견되면
그런 다음 프로토타입 객체의 속성에 해당하는 값을 반환합니다. undefine;
따라서 인스턴스 객체 속성이 프로토타입 객체의 속성을 덮어쓰는 것을 볼 수 있습니다.
4. JSON을 사용하여 객체를 생성합니다
// object={속성 이름 1: 속성 값 2: 속성 값 2 ,...}
//JOSN 형식의 속성 이름은 큰따옴표로 묶어야 합니다.
var p={ "name":"wangsch", "gender":"man", "age":40, "son":[ { "name":"son1", "age":2 }, { "name":"son2", "age":5 } ], "infor":function(){ document.write("父亲的姓名:"+this.name+",父亲的年龄:"+this.age+"<br>"); for( var child in this.son ){ document.write("儿子的姓名:"+this.son[child].name+",儿子的年龄:"+this.son[child].age+"<br>"); } } } p.infor();//调用对象p中的infor方法
5. 생성자를 조합하여 사용합니다. 프로토타입 모드로 객체를 생성합니다.
생성자는 인스턴스의 속성과 프로토타입 모드는 메소드와 공유 속성을 정의하는 데 사용됩니다.
function Student(name,sex,grade){ this.name=name; this.sex=sex; this.grade=grade; } Student.prototype.sayName=function(){ console.log(this.name); } Student.prototype.school="nongda";
이 혼합 모드는 매개변수를 생성자에 전달하는 것을 지원할 수 있으며 메모리도 크게 절약합니다.
6. 동적 프로토타입 방법을 사용하여 객체를 만듭니다.
코드는 다음과 같습니다.
<script> function Person(name,age){ this.name = name; this.age = age; this.array = new Array("Kitty","luo"); //如果Person对象中_initialized 为undefined,表明还没有为Person的原型添加方法 if(typeof Person._initialized == "undefined"){ Person.prototype.showName = function () { console.log(this.name); }; Person.prototype.showArray = function () { console.log(this.array); }; Person._initialized = true; } } var obj1 = new Person("Kitty",21); var obj2 = new Person("luo",22); obj1.array.push("Wendy");//向obj1的array属性添加一个元素 obj1.showArray();//Kitty,luo,Wendy obj1.showName();//Kitty obj2.showArray();//Kitty,luo obj2.showName();//luo </script>
이 방법은 생성자/프로토타입 방법과 유사합니다. 생성자에 메서드를 추가하고 생성자 Person에 속성을 추가하면 if 문이 한 번만 성공적으로 실행될 수 있습니다. 실제 응용 프로그램에서는 가장 널리 사용되는 생성자/프로토타입 메서드가 사용됩니다. 동적 프로토타입 메서드도 널리 사용되며 기능적으로 생성자/프로토타입 메서드와 동일합니다. 생성자와 프로토타입 메서드만 사용하지 마세요.
【관련 추천: javascript 비디오 튜토리얼, web front-end】
위 내용은 JavaScript는 객체를 생성할 수 없습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!