码迷,mamicode.com
首页 > Web开发 > 详细

面向对象的JS(一)

时间:2015-11-17 12:38:00      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

 /*JavaScript和其他的语言类似,也是面向对象,自然也就是存在类和对象(对象是类的实例化)*/
        //1、JS对象
        var empty = {};    //没有任何属性的对象
        var point = { x: 0, y: 0 };      //两个属性和值
        var point2 = { x: point.x, y: point.y }    //复杂的属性和值
        var book = {
            "main title": "javascript",            //属性名字中有空格,必须用字符串表示
            "sub-title": "The Definitive Guide",   //属性名字里有连字符,必须用字符串表示
            "for": "all audiences",                //for是保留字,因此必须用引号
            author: {                              //属性为对象类似其他语言
                firstname: "David",                //这个属性的值是一个对象,因此属性没有使用引号
                surname: "Flanagan"                
            }
        };

        //2、通过new创建对象
        var o = new Object();                     //创建空对象,和{}一样
        var a = new Array();                      //创建一个空数组,和[]一样,这里的数组对象是JavaScript自带的对象
        var d = new Date();                       //创建时间对象
        var p = new point();                      //创建自己定义的对象

        //3、属性的查询和设置(可以通过“.”和“[]”来获取属性值,前者右侧必须是属性名称,后者括号内必须是一个字符串表达式)
        var author = book.author;
        var name = author.surname;
        var title = book["main title"];

        book.edition = 6;                         //给book创建一个名为“edition”的属性
        book["main title"] = "ECMAScript";        //给“main title”重新赋属性值

        //4、继承(JavaScript对象具有“自有属性”,也有些是从原型对象继承而来的,构成一条“链”)inherit()函数,通过给它传入指定原对象来创建实例
        var o = {};   //或者var o=new Object();
        o.x = 1;
        var p = inherit(o);     //p继承o和object
        p.y = 2;
        var q = inherit(p);     //q继承o、p和object
        q.z = 3;
        var s = q.toString();    //toString继承object
        var result = q.x + q.y;
        alert(result);           //result为3 ,x和y继承o和p

        //注意:属性赋值,但是不会修改原型链,设置属性和继承无关
        var circle = { r: 1 };      //设置圆形半径r为1
        var c = inherit(circle);    //c继承r
        c.x = 1;
        c.y = 1;
        c.r = 2;
        var l = circle.r;
        alert(l);                   //l为1,原型对象属性没有修改

 

面向对象的JS(一)

标签:

原文地址:http://www.cnblogs.com/dannyhaospace/p/4971164.html

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