當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript模式读书笔记 第3章 字面量和构造函数
生活随笔
收集整理的這篇文章主要介紹了
JavaScript模式读书笔记 第3章 字面量和构造函数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1,對(duì)象字面量 ? ? -1,Javascript中所創(chuàng)建的自定義對(duì)象在任務(wù)時(shí)候都是可變的??梢詮囊粋€(gè)空對(duì)象開始,根據(jù)需要增加函數(shù)。對(duì)象字面量模式可以使我們?cè)趧?chuàng)建對(duì)象的時(shí)候向其添加函數(shù)。
? ??? <script> //定義空對(duì)象 var dog = {}; //對(duì)空對(duì)象添加方法 dog.name = "Liubo"; //對(duì)對(duì)象增加方法 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,對(duì)象字面量語法 a. 將對(duì)象包裝在大括號(hào)中。 b. 對(duì)應(yīng)以逗號(hào)分割屬性和方法。 c. 用冒號(hào)分割屬性名和屬性值。 d. 當(dāng)變來那個(gè)復(fù)制的時(shí)候,以右括號(hào)結(jié)束。
2,自定義構(gòu)造函數(shù): ? ??? <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>
? ? 當(dāng)以new操作符調(diào)用構(gòu)造函數(shù)的時(shí)候:
? ??? ? a. 創(chuàng)建一個(gè)空對(duì)象,并且this變量引用該對(duì)象,同時(shí)還繼承了該函數(shù)的原型。
? ??? ? b.屬性和方法被加入到this引用的對(duì)象中。
? ??? ? c.新創(chuàng)建的對(duì)象由this所引用,并且最后隱式的返回this。
以上代碼,在后臺(tái)實(shí)際執(zhí)行如下所示: ? ?? var Person = function(name){ var this ?= {}; this.name = name; this.say = function(){ return "I am " + this.name }; //return this; }; 3,構(gòu)造函數(shù)的返回值。 ? ? ??<script> var Objectmark = function(){ this.name = "This is it!"; var that = {}; that.name = "And that is that!"; return that;//因?yàn)閞eturn that所以導(dǎo)致第一次初始化的name將被忽略 }; var o = new Objectmark(); console.log(o.name);? </script> 4,強(qiáng)制使用new的模式 <script> function Man(){ this.name = "Lao Liu"; } //創(chuàng)建新對(duì)象 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,數(shù)組、 ? ? 1, var a = [3];//聲明一個(gè)長(zhǎng)度為1 ,a[0] = 3 的數(shù)組。
? ? 2,var a = new Array(3);//聲明一個(gè)長(zhǎng)度為3的數(shù)組
6,JSON:即為大括號(hào)包含起來的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,正則表達(dá)式 ? ? a.使用new RegExp生成正則表達(dá)式。 ? ? ?b.使用字面量語法
8,基本類型包裝器 ? ? Javascript的五類基本類型:數(shù)字、字符串、布爾、null和undefined。
? ? 分別對(duì)應(yīng): 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,錯(cuò)誤對(duì)象(異常捕獲) ? ??? ??
? ? ?? <script> try{ throw{ name:"MyError",//自定義錯(cuò)誤類型 message:'oops', extra: 'This is Exception', remedy: genericErrorhandler//指定應(yīng)該處理該錯(cuò)誤的函數(shù) }; }catch(e){ ? alert(e.message); e.remedy();//調(diào)用genericErrorhandler } function genericErrorhandler(){ alert("Hi, BigLiu!"); }? </script>
? ??? <script> //定義空對(duì)象 var dog = {}; //對(duì)空對(duì)象添加方法 dog.name = "Liubo"; //對(duì)對(duì)象增加方法 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,對(duì)象字面量語法 a. 將對(duì)象包裝在大括號(hào)中。 b. 對(duì)應(yīng)以逗號(hào)分割屬性和方法。 c. 用冒號(hào)分割屬性名和屬性值。 d. 當(dāng)變來那個(gè)復(fù)制的時(shí)候,以右括號(hào)結(jié)束。
2,自定義構(gòu)造函數(shù): ? ??? <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>
? ? 當(dāng)以new操作符調(diào)用構(gòu)造函數(shù)的時(shí)候:
? ??? ? a. 創(chuàng)建一個(gè)空對(duì)象,并且this變量引用該對(duì)象,同時(shí)還繼承了該函數(shù)的原型。
? ??? ? b.屬性和方法被加入到this引用的對(duì)象中。
? ??? ? c.新創(chuàng)建的對(duì)象由this所引用,并且最后隱式的返回this。
以上代碼,在后臺(tái)實(shí)際執(zhí)行如下所示: ? ?? var Person = function(name){ var this ?= {}; this.name = name; this.say = function(){ return "I am " + this.name }; //return this; }; 3,構(gòu)造函數(shù)的返回值。 ? ? ??<script> var Objectmark = function(){ this.name = "This is it!"; var that = {}; that.name = "And that is that!"; return that;//因?yàn)閞eturn that所以導(dǎo)致第一次初始化的name將被忽略 }; var o = new Objectmark(); console.log(o.name);? </script> 4,強(qiáng)制使用new的模式 <script> function Man(){ this.name = "Lao Liu"; } //創(chuàng)建新對(duì)象 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,數(shù)組、 ? ? 1, var a = [3];//聲明一個(gè)長(zhǎng)度為1 ,a[0] = 3 的數(shù)組。
? ? 2,var a = new Array(3);//聲明一個(gè)長(zhǎng)度為3的數(shù)組
6,JSON:即為大括號(hào)包含起來的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,正則表達(dá)式 ? ? a.使用new RegExp生成正則表達(dá)式。 ? ? ?b.使用字面量語法
8,基本類型包裝器 ? ? Javascript的五類基本類型:數(shù)字、字符串、布爾、null和undefined。
? ? 分別對(duì)應(yīng): 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,錯(cuò)誤對(duì)象(異常捕獲) ? ??? ??
? ? ?? <script> try{ throw{ name:"MyError",//自定義錯(cuò)誤類型 message:'oops', extra: 'This is Exception', remedy: genericErrorhandler//指定應(yīng)該處理該錯(cuò)誤的函數(shù) }; }catch(e){ ? alert(e.message); e.remedy();//調(diào)用genericErrorhandler } function genericErrorhandler(){ alert("Hi, BigLiu!"); }? </script>
轉(zhuǎn)載于:https://www.cnblogs.com/jingLongJun/p/4491080.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的JavaScript模式读书笔记 第3章 字面量和构造函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 陶瓷天线和PCB天线以及IPEX天线三者
- 下一篇: 0419 一些不错的UI作品,以后陆续更