상속: 다른 사람은 현재 개체에 없는 속성과 메서드를 가지고 있으며 이를 자신만의 용도로 사용합니다. 이것이 바로 상속입니다.
var I={ }; var obj = { name: 'jack', age:18, sayGoodbye : function () { console.log("goodbye") ; } }// 混入式继承, a中 将继承obj的所有属性 for (var k in obj ) { a[k] = obj [k] ; }
구현 단계
a) 프로토타입 객체에 새 멤버를 추가하는 것은(객체의 동적 특성을 통해) 엄밀한 의미에서 상속이 아닙니다. ,,,, 인스턴스 객체는 Prototype을 상속합니다
프로토타입 객체를 직접 교체
인스턴스 객체는 프로토타입(새 객체)을 상속합니다
객체에 원래 속성과 메서드가 있는 경우 대체 메서드를 사용하면 원래 속성과 메서드를 덮어쓰게 됩니다.
js
Object.creat 메소드에 호환성 문제가 있습니다
모든 생성자에는 프로토타입 객체가 있고 모든 객체에는 생성자가 있으며 각 생성자의 프로토타입 객체는 객체이고 생성자가 있습니다
그런 다음 체인 구조가 형성됩니다. 이를 프로토타입 체인이라고 부릅니다. 프로토타입 상속이란 무엇인가요?프로토타입 체인의 구조를 수정하여 상속을 얻는 방법은 프로토타입 상속입니다
속성 검색 원칙
객체의 멤버에 액세스할 때 먼저 해당 멤버가 있으면 직접 찾아보세요
.
를 직접 사용하여 찾으세요. .있는 경우
프로토타입 체인 상속 구조를 수정하여 얻은 상속을 프로토타입 상속이라고 합니다
function creat(obj) { if (object.creat){ return Object.creat(obj); }else{ function F(){ } F.prototype = obj; return new F(); } }
함수를 만드는 3가지 방법:
함수 표현
new Function ()
Function을 사용하여 함수를 만들 수 있습니다:
Syntax:
function MyArray() { this.name = "我是数组" } var arr = new Array(); MyArray.prototype =arr ; // 继承后,我的数组中 就有了原生数组对象的所有属性和方法 var myArr = new MyArray() ; // myArr 这个对象就继承自arr
function Person() { } ;var p = new Person() ;
函数名 = Function ( ) ; 函数名 = Function(); 函数名 = Function(,,,...
var distinct = new Function(` var arr = []; for (var i = 0; i < arguments.length; i++) { if(arr.indexOf(arguments[i])==-1){ arr.push(arguments[i]); } } return arr; `);
eval
can be 문자열을 js 코드로 변환하고 실행 참고: eval을 사용할 때 JSON 형식 문자열을 구문 분석하려면 {}가 코드 세그먼트
1로 구문 분석된다는 점에 유의하세요. JSON 형식 문자열 name="
eval("var 변수 이름=" 앞에 "var 변수"를 연결할 수 있습니다. + JSON 형식의 문자열);2 JSON 형식 문자열
eval("("+string in JSON format+" )")
정적 멤버 및 인스턴스 멤버정적 멤버
생성자를 통해 액세스하는 속성과 메서드는 정적 멤버 인스턴스 멤버개체(인스턴스)를 통해 액세스하는 속성과 메서드는 인스턴스 멤버
위 내용은 고급 JS 관련 지식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!