javascript是一 种 基于对象的弱类型语言,但是它有些特殊,因为没有类(class)。
那么javascript的对象编程是怎么实现的呢?用函数。
参考: http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html
总的来说用funcction来创建要变的属性。
然后用prototype 来添加通用的属性或方法
比如
function Person(name,sex) {
this.name = name;
this.sex = sex;
}
Person.prototype.Type = '人';
Person.prototype.SayHello = function(){ alert('Hello');}
var person = new Person('哇哈哈','男');
alert(person.name);
person.SayHello();
Person类的Type和SayHello是整个类都有的,而且是固定不变的。如果都写在Person类中,每new一次对象,都会在内存中写一次Type和SayHello,这样就会浪费内存。
所以使用prototype来扩展,这样不论你new多少次,他们的Type和SayHello都是指向一个内存地址。这就是一个简单的类。
每个对象都一个属性 constructor 指向他们的构造函数
每个对象有个属性 instanceof 来验证对象是否属于某个类