• JavaScript模式读书笔记 文章3章 文字和构造


    1。对象字面量
        -1。Javascript中所创建的自己定义对象在任务时候都是可变的。能够从一个空对象開始,依据须要添加函数。对象字面量模式能够使我们在创建对象的时候向其加入函数。
          <script>
    //定义空对象
    var dog = {};
    //对空对象加入方法
    dog.name = "Liubo";
    //对对象添加方法
    dog.getName = function(){
    return dog.name;
    };
    //改变属性和方法
    dog.getName = function(){
    returen "LaoLiu";
    };
    //全然删除属性/方法
    delete dog.name;
      </script>
     
    <script>
    var dog = {
    name: "LaoLiu",
    getName:function(){
    return this.name;
    }
    };
      </script>
    -2,对象字面量语法
      a. 将对象包装在大括号里。
      b. 相应以逗号切割属性和方法。
      c. 用冒号切割属性名和属性值。
      d. 当变来那个复制的时候。以右括号结束。

    2,自己定义构造函数:
         
    <script>
    var Person = function(name){
    this.name = name;
    this.say = function(){
    return "I am " + this.name;
    }
    }
    var adam = new Person("Adam");
    console.log(adam.say());
      </script>

        当以new操作符调用构造函数的时候:
            a. 创建一个空对象。而且this变量引用该对象,同一时候还继承了该函数的原型。


            b.属性和方法被增加到this引用的对象中。
            c.新创建的对象由this所引用,而且最后隐式的返回this。


    以上代码,在后台实际运行例如以下所看到的:
        
    var Person = function(name){
    var this  = {};
    this.name = name;
    this.say = function(){
    return "I am " + this.name
    };
    //return this;
    };
    3,构造函数的返回值。
       
      <script>
    var Objectmark = function(){
    this.name = "This is it!";
    var that = {};
    that.name = "And that is that!";
    return that;//由于return that所以导致第一次初始化的name将被忽略
    };
    var o = new Objectmark();
    console.log(o.name);
      </script>
    4。强制使用new的模式
    <script>
    function Man(){
    this.name = "Lao Liu";
    }
    //创建新对象
    var laoLiu = new Man();
    console.log(typeof laoLiu);// object
    console.log(laoLiu.name);//Lao Liu
    //反模式
    //未使用new操作
    var pangLiu =  Man();
    console.log(typeof pangLiu);//undefined
    console.log(pangLiu.name);//Cannot read property 'name' of undefined 
      </script>


    5,数组、
        1。 var a = [3];//声明一个长度为1 ,a[0] = 3 的数组。


        2。var a = new Array(3);//声明一个长度为3的数组
    6,JSON:即为大括号包括起来的key-value
        JSON解析:
     <script>
    var jstr = '{"mykey" : "my value"}';
    //反模式
    var data = eval('(' + jstr + ')');
    console.log(data);
    //推荐使用
    data = JSON.parse(jstr);
    console.log(data.mykey);
      </script>

    JSON封装:
      <script>
    var dog = {
    name : "LaoLIu", 
    dob: new Date(),
    legs: [1, 2, 3, 4]
    };
    var jsonStr = JSON.stringify(dog);
    console.log(jsonStr);//{"name":"LaoLIu","dob":"2014-11-07T06:17:28.097Z","legs":[1,2,3,4]}
      </script>
    7,正則表達式
         a.使用new RegExp生成正則表達式。
         b.使用字面量语法
    8,基本类型包装器
        Javascript的五类基本类型:数字、字符串、布尔、null和undefined。
        分别相应: Number()   String()   Boolean()
     
    <script>
    var n = 100;
    console.log(typeof n);//number
    var nobj = new Number(100);
    console.log(typeof nobj);//object
    var s = "hello";
    console.log(s.toUpperCase());//HELLO
     
    var greet = "1 2 3 4";
    console.log(greet.split(" ")[0]);//1
      </script>
    9,错误对象(异常捕获)
            
       
       <script>
    try{
    throw{
    name:"MyError",//自己定义错误类型
    message:'oops',
    extra: 'This is Exception',
    remedy: genericErrorhandler//指定应该处理该错误的函数
    };
    }catch(e){
     
    alert(e.message);
    e.remedy();//调用genericErrorhandler
    }
    function genericErrorhandler(){
    alert("Hi, BigLiu!");
    }
      </script>























    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    七层协议和四层协议
    eclipse 在jboss的debug配置(ubuntu系统)
    Maven三种仓库的配置
    oracle触发器使用
    为什么要进行URL编码
    LevelDB Compaction原理
    使用python处理selenium中的窗口切换问题
    使用python处理selenium中的鼠标悬停问题
    测试模型
    jenkins for mac
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4681143.html
Copyright © 2020-2023  润新知