Js构造对象-添加方法的三种方式
Js构造函数添加方法有多种方案,来看一个混合方式构造函数的例子:申明person构造函数,有两个属性,name,qq。在原型上添加方法showname。这是最常用的方法。
<script> function person(name,qq){ this.name = name; this.qq = qq; } person.prototype.showname = function(){//这里showname即使方法的引用也是方法名,有点奇怪 alert("我的名字:"+this.name); } var p1 = new person("张三",11111); var p2 = new person("李四",22222); p1.showname(); //alert(p1.showname == p2.showname );//true </script>
上面的例子中showname 我的理解是:这里showname既是方法的引用也是方法名。
Showname除了这种写法,还可以有以下两种方法,最后一种封装的更好:
//第二种 person.prototype = { showname: function(){ alert('我的名字'+this.name) } } //第三种 person.prototype = function(){ showname = function(){alert('我的名字:'+this.name)} return { showname: showname} }()
加上上面例子中的方法,总共3种写法,这三种写法本质都是为person构造函数的原型添加一个showname的方法。细细体会。