zoukankan      html  css  js  c++  java
  • javascript面向对象规则汇总以及json

    javascript中一切皆对象,而且定义非常灵活,

    于是出现了一些相对其他编程语言环境下匪夷所思的代码:

    -----------------------------------------------------------------------------------------------------------------------------

    字符串对象

    var str="abcde";

    str.length;

    函数对象

    (function(){}).toString();//将输出函数代码文本

    function callAnotherFunc(fnFunction, vArgument) { fnFunction(vArgument);}

    var doAdd = new Function("iNum", "alert(iNum + 10)");//定义一个数对象,注意函数体放在最后,每个构造参数都是一个字符串

    callAnotherFunc(doAdd, 10); //输出 "20"

    数组对象

    alert(['name'].length);//输出1,['name']是一个数组对象,且只有一个元素(字符串'name')

    -------------------------------------------------------------------------------------------------------------------------------

    对象定义:

    var a=[[1,2,3][0,1]["a",2]["sds","sds"]];//二维数组;
    var obj={};

    or

    var obj=new Object();

    or 

    var obj={fname:"Bill",lname:"Gates",age:56};

    var person=obj;

    or 

    var obj=function(fname,lname,age){this.fname=fname;this.lname=lname;this.age=age;}

    var person=new obj("bill","gates",56);

    属性是可以任意添加的

    obj[0]="abc";//每个对象都支持下标运算符,如果该下标没有对应的对象,按么返回undefined

    obj['name']="an object";

    obj.name="an object";

    obj.fn=function(){};

    例外情况是 var i=0;i.x=3;//这样是不可以的,因为i是值类型,不可以添加属性,只有object可以任意添加属性

    另外,平时在javascript中对象实例相关的操作都是通过引用进行的,这样一来javascript没有指针倒也无所谓了

    function func(obj){obj.name="abc";}

    var obj={name:"java"};

    func(obj);

    alert(obj.name);//输出abc

    关于json:

    格式比较简单了,就是name:value成对出现和xml一样都具有自我描述的特性(自我描述:不只承载数据本身,还包含这些数据对应的字符串名称)

    value可以是各种对象(数组,对象,字符串,false/true,null)

    {

    "employees": 

    [{ "firstName":"John" , "lastName":"Doe" },{ "firstName":"Anna" , "lastName":"Smith" },{ "firstName":"Peter" , "lastName":"Jones" }]

    }

    //JSON解析

    var txt = '{"employees":[' +

    '{"firstName":"Bill","lastName":"Gates" },' +

    '{"firstName":"George","lastName":"Bush" },' +

    '{"firstName":"Thomas","lastName":"Carter" }]}';

    obj = JSON.parse(txt);

    或者 obj=eval("(" + txt + ")");

    为了让最外层的{}不要被eval理解成为Javascript的代码块的开始.而是理解成为一个对象字面量
    你写成这样也是一样

    1
    2
    3
    var jsonStr = '{"a":1}';
    eval('var jsonObj = '+jsonStr);
    alert(jsonObj.a);

    eval或许可以看作是一个宏,类似于c++中的宏

    json的使用:

    • 读取 JSON 字符串
    • 用 eval() 处理 JSON 字符串
    <script>
    //json文本
    var employee='{"firstname":'+'"john",'+'"lastname":'+'"bill"}'
    alert(eval("("+employee+")").firstname);
    //直接使用json对象
    var obj={"staffs":[{"ab":"cd"}]}
    alert(obj.staffs[0].ab);
    </script>
    相信世界是平的
    谨记四个字“修身养性”
    大江东去浪淘尽英雄,再牛B的人物最后也是一掊土
    向善不是目的,而是抚慰心灵,更多的感受幸福,感谢别人给你行善的机会
    相信老子的话:万物生于有,有生于无,一切的道理都源于一个无法证明的假设
    我是好是坏就自然而然的摆在那里,并不会因为别人的评价而改变什么,我也不需要别人用一张纸来说明我什么,世间最难得的是自由



    支持大额赞助:
  • 相关阅读:
    高斯滤波
    最短路径与贪婪
    应该要知道的几个统计学定义.
    Linux network setting.
    Windows与自定义USB HID设备通信说明.
    Win32 WriteFile and ReadFile
    C语言原码反码补码与位运算.
    Linux下查看显示器输出状态以及修改显示器工作模式(复制 or 扩展)
    Web通信协议:OSI、TCP、UDP、Socket、HTTP、HTTPS、TLS、SSL、WebSocket、Stomp
    如何用搜狗拼音输入法输入希腊字母及各种上下标
  • 原文地址:https://www.cnblogs.com/sky-view/p/3246495.html
Copyright © 2011-2022 走看看