5-JavaScript - 객체 만들기 - 세 가지 중요한 모드
function createPerson(name,age,job){
var o = new Objec();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function(){
console.log(this.name);
}
return o;
}
var person1 = createPerson("lpove",18,"font-end Engineer");
var person2 = createPerson("pandada",22,"UI");
//
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = function(){
console.log(this.name);
}
}
var person1 = Person("lpove",18,"font-end Engineer");
var person2 = Person("pandada",22,"UI");
// person1 === person2 false
createPerson()과의 차이점: - 1, 뚜렷한 창설 대상 없음 - 2, 속성과 방법을this 대상에 직접 부여 - 3, return 문장 없음 - 4, 대문자 시작 Person
새로운 Person 실례를 만들 때마다 우리는 다음과 같은 몇 가지 농담을 했다. - 1, 새로운 대상을 만들다. - 2, 구조 함수의 작용역을 새로운 대상에 부여한다. (그래서this도 이 대상을 가리킨다) - 3, 구조 함수의 코드를 실행한다. - 4, 새로운 이미지를 되돌려준다.
-그래서 우리도 이렇게 계산 함수 모드의 코드를 체크할 수 있다.
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayName =new Function(
console.log(this.name);
)
}
--물론 우리는 매번 이렇게 함수를 실례화할 필요가 없기 때문에sayName을 밖에 놓고 실현할 수 있다---
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = sayName;
}
function sayName(){
console.log(this.name);
}
- 그 동안 우리는 함수를 구조 함수 밖에 두었다. 우리는 두 함수인person1과person2를 해결하고 같은 일을 했다. 그러나 우리의 함수는 전체 국면의 작용역에 노출되어 우리가 실현해야 할 봉인성은 의미가 없다.그래서 저희는 JavaScript의++prototype++로 문제를 해결하기로 했습니다.
function Person(){}
Person.prototype.name = "lp";
Person.prototype.age = 18;
Person.prototype.job = "UI";
Person.prototype.sayName = function(){
console.log(this.name);
}
var person1 = new Person();
person1.sayName(); // "lp"
var person2 = new Person();
person1.sayName(); // "lp" lp
console.log(person1.sayName == person2.sayName); //true
var person2 = new Person();
person2.name = "panda";
console.log(person2.name);// panda
--이제 우리는 함수의 다른 문제를 해결하고 우리의 구조 함수에 넣었다--
--위의 코드를 따라, 우리는 hasOwnProperty() 함수를 사용하여 실례화된 대상인지 아닌지를 판단한다.
function Person(){}
Person.prototype.name = "lp";
Person.prototype.age = 18;
Person.prototype.job = "UI";
Person.prototype.sayName = function(){
console.log(this.name);
}
var person1 = new Person();
var person2 = new Person();
console.log(person1.hasOwnProperty("name")); //false
person1.name = "panda";
console.log(person1.hasOwnProperty("name")); //true
// in , true, in prototype
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.