자 바스 크 립 트 에서 대상 을 정의 하 는 몇 가지 방식 (자 바스 크 립 트 에는 클래스 개념 이 없고 대상 만 있 음)
var object = new Object();
object.name = "kyle"; // name
object.sayName = function(name){ // sayName()
this.name = name;
alert(this.name);
}
object.sayName("jack");
2) 공장 방식 창설 대상
(a) 매개 변수 가 없 는 구조 방법
function createObject(){
var object = new Object();
object.username = "kyle";
object.age ="22";
object.get = function(){
alert(" :"+this.username+" :"+this.age);
}
return object;
}
var object1 = createObject();
object1.get();
(b) 매개 변 수 를 가 진 구조 방법매개 변수 가 없 는 구조 방법 은 단점 이 있 습 니 다. 대상 이 생 긴 후에 초기 값 을 수정 하고 다음은 매개 변수 가 있 는 구조 방법 을 사용 합 니 다.
function createObject(username,age){
var object = new Object();
object.username = username;
object.age = age;
object.get = function(){
alert(" :"+this.username+" :"+this.age);
}
return object;
}
var object1 = createObject("kyle","22");
object1.get();
같은 결 과 를 얻 었 습 니 다. 상기 두 가지 방법 은 공 통 된 결함 이 있 습 니 다. 하나의 대상 을 만 들 때마다 get () 방법 은 다시 한 번 정의 되 었 습 니 다. 그러면 메모리 비용 을 증가 시 켰 습 니 다. get () 방법 을 여러 대상 에 게 공유 하 는 것 이 좋 습 니 다. 아래 의 방법 을 사용 할 수 있 습 니 다.
function get(){
alert(" :"+this.username+" :"+this.age);
}
function createObject(username,age){
var object = new Object();
object.username = username;
object.age = age;
object.get = get;
return object;
}
var object1 = createObject("kyle","22");
var object2 = createObject("jack","24");
object1.get();
object2.get();
get () 방법 을 단독으로 정의 합 니 다. object. get = get;get () 방법 을 가리 키 면 여러 대상 이 get () 방법 을 공유 할 수 있 습 니 다.3) 구조 함수 방식 으로 대상 만 들 기 (a) 매개 변수 없 음
function Person(){
// ,js
this.username = "kyle";
this.age = "22";
this.getInfo = function(){
alert(" :"+this.username+" :"+this.age);
}
// return ,
}
var p1 = new Person();
p1.getInfo();
(b) 매개 변수function Person(username,age){
this.username = username;
this.age = age;
this.getInfo = function(){
alert(" :"+this.username+" :"+this.age);
}
}
var p1 = new Person("kyle","22");
p1.getInfo();
4) 프로 토 타 입 (prototype) 방식 으로 대상 생 성
function Person(){
}
Person.prototype.name = "kyle";
Person.prototype.age = "22";
Person.prototype.getInfo = function(){
alert(" :"+this.name+" :"+this.age);
}
var p1 = new Person();
var p2 = new Person();
p2.name = "jack";
p2.age = "24";
p1.getInfo();
p2.getInfo();
단순히 원형 방식 으로 대상 을 정의 하면 구조 함수 에서 속성 에 초기 값 을 부여 할 수 없고 대상 이 생 성 된 후에 만 속성 을 변경 할 수 있 습 니 다.다음은 원형 + 구조 함수 방식 으로 대상 을 정의 하고 속성 은 구조 함수 에 쓰 이 며 방법 은 원형 방식 을 사용한다.
function Person(){
this.name = "kyle";
thi.age = "22"
}
Person.prototype.getInfo = function(){
alert(" :"+this.name+" :"+this.age);
}
var p1 = new Person();
var p2 = new Person();
p2.name = "jack";
p2.age = "24";
p1.getInfo();
p2.getInfo();
5) 동적 원형 방식 으로 대상 을 만 듭 니 다. 구조 함수 에서 표 지 량 을 통 해 모든 대상 에 게 하나의 방법 을 공유 하고 모든 대상 은 자신의 속성 을 가지 고 있 습 니 다.
function Person(){
this.name = "kyle";
this.age = "22";
if(typeof Person.flag == "undefined"){
Person.prototype.getInfo = function(){
alert(" :"+this.name+" :"+this.age);
}
Person.flag = true;
}
}
var p1 = new Person();
var p2 = new Person();
p2.name = "jack";
p2.age = "24";
p1.getInfo();
p2.getInfo();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.