javascript-firstclass, 계승과 다태

1850 단어 functionprototypeGo
First-class
function Car() {
  var self = this;
  self.speed = 0;
  self.start = function() {
  console.log("Car started.");
  }
  self.accelerate = function() {
  self.speed = self.speed + 10;
  console.log("Speed is now:"+self.speed+ " mph");
  }
  self.applyBrakes = function() {
  self.speed = 0;
  console.log("Brakes applied.");
  }
}

계승과 다중 모드를 사용하여 복잡한 대상 만들기 - 키워드prototype 사용하기
function Car() {
var self = this;
self.type = "Car"
self.go = function() {
console.log("Going...");
};
};
Toyota = function() {};
Toyota.prototype = new Car();
Toyota.prototype.constructor = function() {
var self = this;
self.type = "Toyota";
self.go = function() {
console.log("A Toyota car is going...");
}
};
Toyota.prototype.isJapaneseCar = true;
var t = new Toyota();
console.log(t instanceof Toyota);
console.log(t instanceof Car);

Prototype 라이브러리를 사용하여 상속 -Prototype(www.prototypejs.org)
var Car = Class.create({
initialize: function() {
this.type = "Car";
},
go: function() {
console.log("Going...");
}
});
var Toyota = Class.create(Car, {
initialize: function() {
this.type = "Toyota";
this.isJapaneseCar = true;
},
go: function() {
console.log("A Toyota car is going...");
}
});

Prototype 라이브러리를 사용하여 부모 함수를 호출할 때 매개 변수 목록의 시작 부분에 $super를 추가해야 합니다. $super 대상은 부모 함수와 연결되지 않습니다.하위 대상의 고 함수는 부모 대상을 호출하는 고 함수만 표시할 수 있으며, 다른 부모 함수라면 스텔스 호출이다
var Toyota = Class.create(Car, {
initialize: function() {
this.type = "Toyota";
this.isJapaneseCar = true;
},
go: function($super) {
$super();
console.log("A Toyota car is going...");
}
});

출력:
Going...
A Toyota car is going...

좋은 웹페이지 즐겨찾기