码迷,mamicode.com
首页 > 编程语言 > 详细

javascript定义类的方法总结

时间:2014-10-07 01:58:32      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   使用   ar   java   数据   sp   

1.构造函数法

类是对象的模板,定义了对象共有的方法属性数据 等,在javascript中一个函数就是一个对象,也可以看做一个类的构造方法。

所以我们可以像以下方式定义类:

          //1.经典的构造方法
            Q=function(name){
                this.name=name;
                this.func_a=function(arg){
                    alert(arg);
                };
            };
            q=new Q(‘akun‘);

2.通过原型来定义类

原型(prototype)有点像python里的字典,原型记录了从它生成的对象所具有的方法,属性,相当于创建对象的模板

        Q.prototype={
                age:13,
                say_age:function(){
                    alert(‘age is‘+this.age);
                }
            }

这样,Q生成的对象不仅具有func_a函数还具有age属性和say_age方法。

           Q[‘sex‘]=‘male‘;//the sex belongs to Q but instance of Q!
            q=new Q(‘akun‘);
            q.say_age();//age is 13
            q.func_a(‘my name is‘+" "+ q.name)//my name is akun
            q.func_a(‘the sex is ‘+ q.sex);//the q.sex is undefined
            q.func_a(‘the sex is ‘+ Q.sex);//the sex is male
            //如果把Q[‘sex‘]改为Q.prototype[‘sex‘]则Q的实例q具有sex属性

3.“极简主义”

            var Q={
                init:function(name){
                    var obj={};
                    obj.name=name;
                    obj.say_hello=function(){
                        alert(this.name);
                    };
                    return obj;
                },
            };
            q=Q.init(‘akun‘);
            q.say_hello();

以上使用init方法创建对象,相当于init作为了构造方法来返回一个对象,我们在这个对象上定义属性和方法。

 

4.关于this

            Q.fn= Q.prototype;
            Q.extend=function(attr,value){this[attr]=value;};//this指Q
            Q.fn.extend= Q.extend;//Q.fn.extend中的this指向Q.fn即  Q.prototype
            Q.extend(‘weight‘,‘100kg‘);
            Q.fn.extend(‘myweight‘,‘99kg‘);
            q=new Q(‘akun‘)
            alert(q.weight)//undefined
            alert(q.myweight)//99kg
            alert(Q.weight)//100kg

 

javascript定义类的方法总结

标签:style   blog   color   io   使用   ar   java   数据   sp   

原文地址:http://www.cnblogs.com/zkchen/p/4008879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!