이 글은 주로 js에 대한 고급 지식을 공유합니다
상속은 유형 간의 관계입니다.
실제로 객체의 복사본입니다
function extend (parent, child) { for (var key in parent) { if (! child[key] ) { child[key] = parent[key] } }}
만 상위 요소의 메소드는 상속될 수 있지만 속성 상속은 의미가 없습니다
//父级元素function Person (name, age, sex) { this.name = name; this.age = age; this.sex = sex}Person.prototype.sayHi = function () { console.log('hello' + this.name);} //子级元素function Student (score) { this.score = score;} //只能继承方法Student.prototype = new Person;Student.prototype.constructor = Student;var s1 = new Student(100);console.log(s1);
참고:
문제: Student.prototype = new Person 매개변수는 생성자에 설정할 수 없으며 한 번만 실행할 수 있으며 값은
호출을 사용하여 이것의 속성을 변경할 수 있고 생성자를 빌릴 수 있지만 생성자 메서드를 상속할 수는 없습니다.
//父级元素function Person (name, age, sex) { this.name = name; this.age = age; this.sex = sex}Person.prototype.sayHi = function () { console.log('hello' + this.name);} //子级元素function Student (name,age, sex, score) {Person.call(this, name, age, sex); this.score = score;} //只能继承属性var s1 = new Student('na', 20, 'nv' , 100);console.log(s1);
는 프로토타입과 생성자를 결합합니다. 문제가 될 것입니다. 하위 요소의 메소드는 여러 하위 요소에 의해 액세스됩니다.
이 문제를 해결하는 방법은 객체 상속, 즉 복사를 사용하는 것입니다.
function extend (parent, child) { for (var key in parent) { if (! child[key] ) { child[key] = parent[key] } }}function Person (name, age, sex) { this.name = name; this.age = age; this.sex = sex}Person.prototype.sayHi = function () { console.log('hello' + this.name); } //子级元素function Student (name,age, sex, score) {Person.call(this, name, age, sex); this.score = score;}Student.prototype.say = function () { console.log('hi'); } //只能继承属性extend(Person.prototype, Student.prototype);var s1 = new Student('na', 20, 'nv' , 100);console.log(s1); //子级元素function Teacher (name,age, sex,salary) {Person.call(this, name, age, sex); this.salary = salary}extend(Person.prototype, Teacher.prototype);var t = new Teacher('na', 10,'nv', 1000);console.log(t);
1. 함수 선언
function fn() {
}
2. 함수 표현
var fn = function (){
}
3.var fn = new Function('매개변수는 문자열입니다.' );
fn 여기서는 객체가 함수라도
4. 함수 선언과 함수 표현식의 차이점
함수 선언은 승격되어 전후에 호출할 수 있지만, 함수 표현식은 함수 표현식 이후에만 호출할 수 있습니다.
1. 생성자에서 This는 호출 개체를 가리킵니다.
2. 일반 함수에서는 this를 가리키고, strict 모드에서는
3을 가리킵니다. 창으로
4. 개체 메서드가 호출되면 호출 메서드의 개체
1.bind의 지점을 변경합니다.
첫 번째 매개변수는 이
를 가리키는 요소를 가리킵니다.새 함수를 반환합니다.
2.call
함수를 호출하고 이 Point를
Borrow 생성자
다른 개체의 Borrow 메서드
3.apply
첫 번째 매개변수는 this를 변경한 지점입니다. 두 번째 매개변수는 배열입니다.
관련 권장 사항:
위 내용은 js 고급 지식 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!