javascript 对象 与 prototype 原型

我们做程序开发的,经常面对的就是一个一个对象。那么在javascript中我们怎么去创建一个类以及一个对象呢?

<script type="text/javascript">
    //创建一个Test对象
    function Test(){

    }
    var test = new Test();

    //创建一个对象
    var obj = new Object();

    //json 对象
    var json1 = {};
</script>

类都有自己的属性和方法,我们怎么去定义

<script type="text/javascript">
    function Test(){
        this.name = "谭勇";
        this.age  = 22;
        this.getName = function(){
            return this.name;
        }
        this.getAge = function(){
            return this.age;
        }
    }

    var test = new Test();
    console.log(test); //查看一下日志

    var obj = new Object();

    obj.name = "谭勇";
    obj.age = "22";
    obj.getName = function(){
        return this.name;
    };
    obj.getAge = function(){
        return this.age;
    };

    console.log(obj);   //查看下日志

    var json1 = {};
    json1["name"] = "谭勇";
    json1["age"]  = 22;
    json1["getName"] = function(){
        return this.name;
    }
    json1["getAge"] = function(){
        return this.age;
    }
    console.log(json1);  //查看下日志
</script>

构造方法

<script type="text/javascript">
    function Test2(name,age){
        this.name = name;
        this.age  = age;
        this.getName = function(){
            return this.name;
        }
        this.getAge = function(){
            return this.age;
        }
    }

    var test2 = new Test2("谭勇",22);
    console.log(test2);   //查看下日志
</script>

行为有形参

<script type="text/javascript">
    function Test3(){
        this.demo = function(param_str){
            return param_str;
        }
    }
    var test3 = new Test3();
    console.log(test3.demo("aaaaaaaaaaaaaaaaaaaa"));
</script>

继承

<script type="text/javascript">
    function parent(){
        this.getStr = function(){
            return "test str";
        }   
    }

    function son(){}

    son.prototype = new parent();

    var sona = new son();
    console.log(sona.getStr());
</script>

拷贝继承

<script type="text/javascript">
    function extend(Child, Parent) {
        var p = Parent.prototype;
        var c = Child.prototype;
        for (var i in p) {
          c[i] = p[i];
        }
    }

    function parent(){

    }

    parent.prototype.getStr=function(){
        return "test str";
    }
    function son(){

    }
    extend(son,parent);

    var sona = new son();

    console.log(sona.getStr());
</script>

原型

原型是一个对象,其他对象可以通过它实现属性继承。
任何一个对象都可以成为原型么?

哪些对象有原型

所有的对象在默认的情况下都有一个原型,因为原型本身也是对象,所以每个原型自身又有一个原型(只有一种例外,默认的对象原型在原型链的顶端。)

<script type="text/javacript">
    var str = "谭勇";

    String.prototype.getName = function(){
        var strs = "";
        for(var i=0;i<this.length;i++){
            strs += this[i];
        }

        return strs;
    }

    console.log(str.getName());

    console.log(str);

    console.log(str[0]);
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值