zoukankan      html  css  js  c++  java
  • 面向对象的JS(一)


    JavaScript是弱类型,可变性强
    /*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,原型对象属性没有修改
     //5、删除属性(delete运算符可以删除对象的属性,只能删除自有属性,不能删除继承属性)
            delete book.author;         //book不再有属性author
            delete book["main title"];    //book也不再有属性“main title”
    
            var o = { x: 1 };
            delete o.x;
            delete o.x;                  //此时返回true
            delete o.toString;           //返回true
            delete 1;                    //无意义,返回true
    
            delete Object.prototype;      //不能删除,是不可配置的属性
            var x = 1;
            delete this.x;                 //不能删除这个属性
            function f() { };              //声明一个局部函数
            delete this.f;                //也不能删除
    
            this.x = 1;                 //创建一个可配置全局属性(没有用var)
            delete x;                    //可以删除
    
            delete x;                   //直接报错,不能直接这样操作
            delete this.x;              //正常运行
    
            //6、检测属性
            var o = { x: 1 };          //创建一个对象
            o.hasOwnProperty("x");      //true
            o.hasOwnProperty("y");      //false
            o.hasOwnProperty("toString");    //false继承属性
    
            //7、对象的三个属性(原型属性、类属性、可扩展属性)
            //原型属性
            var p = { x: 1 };                  //定义一个原型对象
            var o = Object.create(p);          //使用这个原型创建一个对象
            p.isPrototypeOf(o);                //true  o继承p
            Object.prototype.isPrototypeOf(o);  //true p继承object.prototype
    
            //类属性
            function classof(o)
            {
                if (o === null) return "Null";
                if (o===undefined) {
                    return "Undefined";
                }
                return Object.prototype.toString().call(o).slice(8,-1);
            }
            classof(null);      //"Null"
            classof(1);         //"Number"
            classof([]);        //"Array"
            
            //可扩展属性
            var o = Object.seal(Object.create(Object.freeze({ x: 1 }), { y: { value: 2, writable: true } }));
    
            //8、序列化对象
            o = { x: 1, y: { z: [false, null, ""] } };
            s = JSON.stringify(o);
            p = JSON.parse(s);
    
            //9、对象方法
            var s = { x: 1, y: 1 }.toString();
            var a = Array.toString();
            var n = Number.toLocaleString();
            var d = Date.toJSON();
            var dd = Date.valueOf();
  • 相关阅读:
    LINUX基础学习之基础命令(3)--2019-11-22
    LINUX基础学习之基础命令(2)--2019-11-18
    Linux基础学习之基础命令(1)--2019-11-14
    Linux系统的安装-2019-11-11
    Linux学习之路-基础入门 20191104
    linux下安装redis
    Hadoop(1):Centos 7 安装 Hadoop 3.2.1
    rsync 分发脚本
    Linux环境(Centos 7)安装MySQL数据库
    在已经安装好的Nginx上增加新模块
  • 原文地址:https://www.cnblogs.com/dannyhaospace/p/4971164.html
Copyright © 2011-2022 走看看