js 노트 34의 원형 체인 모드 확장 (1)
원형 체인 모드 확장
원형의 공유 속성 대량 설정
function Fn(){
this.x = 100;
}
Fn.prototype.getX = function(){
};
Fn.prototype.getY = function(){
};
Fn.prototype.getZ = function(){
};
var f1 = new Fn;
function Fn(){
this.x = 100;
}
var pro = Fn.prototype;
// pro,
pro.getX = function(){
};
pro.getY = function(){
};
pro.getZ = function(){
};
var f1 = new Fn;
function Fn(){
this.x = 100;
}
Fn.prototype = {
constructor: Fn, // constructor
x: function(){
},
y: function(){
}
};
var f1 = new Fn;
f.a();
f.b();
//1. Fn.prototype constructor,
// , constructor Fn Object
// , constructor
console.log(f.constructor) // -> ( ) Object
a. 브라우저만 Fn에게 태어난다.prototype가 개척한 메모리 더미에constructor가 있습니다. 우리가 개척한 메모리 더미에는 이 속성이 없습니다. 이렇게 하면constructor가 가리키는 것은 Fn이 아니라 Object입니다. 원래와 일치하기 위해서constructor의 지향을 수동으로 늘려야 합니다.
function Fn(){
this.x = 100;
}
Fn.prototype = {
constructor: Fn, // constructor
y: function(){
},
z: function(){
}
};
var f1 = new Fn;
f1.y();
f1.z();
console.log(f1.constructor) // ->Fn(){ this.x = 100; }
b. 이런 방식으로 내장류에 공유의 속성을 추가하고 내장류에 Array를 추가하여 그룹을 무겁게 하는 방법
Array.prototype = {
constructor: Array,
unique: function(){
}
}
이런 방식은 이전에 원형에 존재했던 속성과 방법을 대체할 수 있기 때문에 이런 무릇 내장류를 수정하면 브라우저는 차단한다
var ary = [1,2,2,1,2,3,4,2,1,3];
ary.sort();
console.log(ary); // -> [1, 1, 1, 2, 2, 2, 2, 3, 3, 4]
그러나 내장된 방법을 하나하나 수정할 수 있다. 우리가 아래의 방식을 통해 수조의 원형에 방법을 추가할 때 방법명과 원래 내장된 것이 중복되면 다른 사람이 내장한 것을 수정할 수 있다. -> 이후 내장류의 원형에 방법을 추가하면 명칭은 모두 특별한 접두사가 필요하다.
Array.prototype.sort = function(){
console.log(this) // this -> ary
// [1,2,2,1,2,3,4,2,1,3]
}
var ary = [1,2,2,1,2,3,4,2,1,3];
ary.sort();
console.log(ary); // -> [1,2,2,1,2,3,4,2,1,3]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.