js 창설 대상의 몇 가지 모드
공장 모드
function createPerson(name, age) {
let o = new Object();
o.name = name
o.age = age
o.say = function() {
console.log("name", this.name, "age", this.age);
}
return o
}
let object1 = createPerson('n1', 'a1');
let object2 = createPerson('n2', 'a2');
object1.say();
object2.say();
이 공장 함수를 호출해서name와age를 전달할 때마다 두 개의 속성과 방법을 포함하는 대상을 되돌려줍니다.
구조 함수
function Person(name, age) {
this.name = name;
this.age = age;
this.say = function () {
console.log("name", this.name, "age", this.age);
}
}
let p1 = new Person('n1', 'a1');
let p2 = new Person('n2', 'a2');
p1.say();
p2.say();
구조 함수 중 사실 리턴이 한 대상을 되돌려 주지 않는 것을 볼 수 있다.하지만 이것들은 모두 new 조작부호를 사용한 후 자동으로 조작된다.
(1) 새 객체 만들기
(2) 이 새 대상은 함수 호출된this에 귀속됩니다
(3) 객체 반환
원형 모드
function Person() {
}
Person.prototype.name = 'name'
Person.prototype.age = 'age'
Person.prototype.say = function () {
console.log(this.name, this.age);
}
let p = new Person()
p.say();
원형을 사용하는 장점은 모든 실례 대상이 그 안에 포함된 속성과 방법을 공유할 수 있고 구조 함수에서 대상의 실례 정보를 정의할 필요가 없다는 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.