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的方法。细细体会。

posted @ 2016-03-16 15:17  小虫1  阅读(17061)  评论(0编辑  收藏  举报