1.JavaScript面向对象
function Foo(n){ this.name=n; this.sayname=function(){ console.log(this.name); } } var obj1=new Foo('xiaoming'); obj1.name; obj1.sayname(); var obj2=new Foo('XiaoHua'); obj2.name; obj2.sayname();
Foo函数中this代指对象,如同Python中的self。 创建对象时,用new函数。
如上例所示,创建了两个对象obj1,obj2,obj1与obj2两个对象中都调用方法sayname(),即sayname()在两个对象的内存中都存了一份,会造成浪费内存的现象。所以,JavaScript中会设置原型,将函数存入原型中,让对象公用。
Foo的原型:
//Foo的原型 Foo.prototype={ 'sayname':function(){ console.log(this.name) } }