JavaScript学习之自定义对象

对象

JavaScript 是面向对象的语言,但 JavaScript 不使用类。
在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。
JavaScript 基于 prototype,而不是基于类的。

JavaScript 对象
JavaScript 提供多个内建对象,比如 String、Date、Array 等等。
对象只是带有属性和方法的特殊数据类型。

访问属性或方法

  • objectName.propertyName
  • objectName.methodName()

创建自定义对象

有两种方式:

  • 直接定义
    person = new Object()或者person = new Object;
    //添加属性
    person.propertyName = value
    person={propertyName1:value1,propertyName2:value2…};
    //添加方法
    person.methodName = methodName;
  • 使用构造函数
    person = new Person();

扩展(prototype)

prototype 属性使您有能力向对象添加属性和方法。

object.prototype.name = value

三种自定义对象的方式比较

使用直接定义方式,比较直观快捷,可以直接添加属性和方法;但是适合创建单个对象,如果创建多个同类对象,就不合适了。
使用构造函数方式,灵活,可以使用prototype添加属性和方法,比较适合作为一个类来用,可以多次调用创建同类对象。

实例

<script type="text/javascript">
    //构造函数
    function Person(id,name,score){
        this.id = id;
        this.name = name;
        this.score = score;

        //添加方法
        //this.toString = toString;
        /*
        也可以使用定义内部函数的方式
        function toString(){
            //JavaScript for...in 语句循环遍历对象的属性。
            var string = "";
            for (x in this)
            {
                string += this[x] + ",";
            }
            return string.substring(0,string.length - 1);
        }*/
    }
    //输出函数
    function toString(){
        //JavaScript for...in 语句循环遍历对象的属性。
        var string = "";
        for (x in this)
        {
            string += this[x] + ",";
        }
        return string.substring(0,string.length - 1);
    }
    //1. 直接创建实例
    var person = new Object;
    person.id = 1;
    person.name = "li ming";
    person.score = 89.5;
    person.toString = toString;
    //2. 使用literal(文字)创建实例
    var p1 = {id:1,name:"li ming",score:89.5};
    p1.toString = toString;
    //3. 使用构造函数创建实例
    var p2 = new Person(1,"li ming",89.5);
    //p2.toString = toString;
    //使用prototype给对象添加属性或者方法。
    Person.prototype.toString = toString;
    //输出对象
    document.write(person.toString()+ "<br/>");
    document.write(p1.toString() + "<br/>");
    document.write(p1.toString() + "<br/>");
 </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值