내가 네트워크를 통해 수집 된 다양한 방법으로 개체의 인스턴스에서 발견 학습 자바 스크립트의 과정에서 오전, 다음과 같은 다섯 가지 일반적으로 사용되는 방법의 요약, 잘못된 경우, 위대한 하나님을 지적하시기 바랍니다.
참조 기사를 다시 인쇄 : HTTPS : //www.cnblogs.com/iflygofy/p/11435479.html
1.Object 생성자 모드
- 루틴 : 동적으로 속성 / 메소드를 추가, 빈 개체 객체를 생성
- 해당 장면 : 불확실한 시작 객체의 내부 데이터
- 문제 : 너무 많은 문
<script type="text/javascript">
// 一个人: name:"Tom", age: 12
var p = new Object()
p = {}
p.name = 'Tom'
p.age = 12
p.setName = function (name) {
this.name = name
}
p.setaAge = function (age) {
this.age = age
}
console.log(p)
</script>
출력 :
2. 객체 리터럴
- 루틴은 : {}, 객체를 생성 속성 / 메소드를 지정하는 데 사용
- 응용 프로그램 시나리오 : 객체의 내부 데이터의 시작 부분에서 결정된다
- 질문 : 여러 객체를 생성하는 경우, 중복 코드가있다
<script type="text/javascript">
var p = {
name: 'Tom',
age: 23,
setName: function (name) {
this.name = name
}
}
console.log(p.name, p.age)
p.setName('JACK')
console.log(p.name, p.age)
**加粗样式** var p2 = {
name: 'BOB',
age: 24,
setName: function (name) {
this.name = name
}
}
</script>
출력 :
3. 공장 패턴
- 루틴 : 공장 기능 및 반환에 의해 동적으로 생성 된 객체
- 응용 프로그램 시나리오 : 여러 개체를 만들 필요
- 문제 : 객체가 특정 유형이없는, Object 형식입니다
<script type="text/javascript">
// 工厂函数: 返回一个需要的数据的函数
function createPerson(name, age) {
var p = {
name: name,
age: age,
setName: function (name) {
this.name = name
}
}
return p
}
var p1 = createPerson('Tom', 12)
var p2 = createPerson('JAck', 13)
console.log(p1)
console.log(p2)
</script>
출력 :
4. 사용자 정의 모델 생성자
- 루틴 : 사용자 정의 생성자로 새로운 객체를 생성
- 응용 프로그램 시나리오 : 특정 된 오브젝트의 여러 유형을 미리 작성할 필요
- 질문 : 각 오브젝트는 동일한 데이터, 메모리의 낭비를 갖는다
<script type="text/javascript">
function Person(name, age) {
this.name = name
this.age = age
this.setName = function (name) {
this.name = name
}
}
var p1 = new Person('Tom', 12)
var p2 = new Person('Tom2', 13)
console.log(p1, p1 instanceof Person)
</script>
출력 :
생성자의 프로토 타입 조합 패턴 +
- 루틴 : 프로토 타입에 기능 추가 초기화 과정에서 사용자 정의 생성자, 속성
- 응용 프로그램 시나리오 : 특정 된 오브젝트의 여러 유형을 미리 작성할 필요
<script type="text/javascript">
function Person (name, age) {
this.name = name
this.age = age
}
Person.prototype.setName = function (name) {
this.name = name
}
var p1 = new Person('Tom', 12)
var p2 = new Person('JAck', 23)
p1.setName('TOM3')
console.log(p1)
Person.prototype.setAge = function (age) {
this.age = age
}
p1.setAge(23)
console.log(p1.age)
Person.prototype = {}
p1.setAge(34)
console.log(p1)
var p3 = new Person('BOB', 12)
p3.setAge(12)
</script>
출력 :