標籤:
Pseudo-class declaration
原文地址:http://javascript.info/tutorial/pseudo-classical-pattern#pseudo-class-declaration
A pseudo-class consists of the constructor function and methods.
For example, here’s the Animal pseudo-class with single method sit and two properties.
function Animal(name) { this.name = name}Animal.prototype = { canWalk: true, sit: function() { this.canWalk = false alert(this.name + ‘ sits down.‘) }}var animal = new Animal(‘Pet‘) // (1)alert(animal.canWalk) // trueanimal.sit() // (2)alert(animal.canWalk) // false
- When
new Animal(name) is called, the new object recieves __proto__ reference toAnimal.prototype, see that on the left part of the picture.
- Method
animal.sit changes animal.canWalk in the instance, so now this animal object can’t walk. But other animals still can.
The scheme for a pseudo-class:
- Methods and default properties are in prototype.
- Methods in
prototype use this, which is the current object because the value of this only depend on the calling context, so animal.sit() would set this to animal.
javascript OOP 物件導向編程