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) // true animal.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
changesanimal.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
usethis
, which is the current object because the value ofthis
only depend on the calling context, soanimal.sit()
would setthis
toanimal
.