一 对象字面量

  1.1对象字面量的语法

  1,对象键值对哈希表,在其他的编程语言中称之为“关联数组”,

  2 键值对里面的值,可以是原始类型也可以是其他类型的对象,称之为属性,函数称之为方法

  3 自定义对象的属性和方法是可以改变的,也可以删除

  4 将对象包括在大括号中

  2,对象中是键值对,键值对与键值对之间使用逗号分隔

  3,键值对的键和值使用冒号分隔

  1.2、来自构造函数的对象

  下面介绍两种创建对象的方法:1,对象字面量;2,使用内置构造函数(反模式)
      1,使用字面量创建对象

var car = {
goes: "far"
};

  2,使用内置构造函数创建对象

var car=new Object();
car.goes='far';

  对上述两种方法进行比较分析:

  1,对象字面量方式强调:对象是一个可变的哈希映射表

  2,内置构造函数强调:对象是由属性和方法组成的

  3,使用内置构造函数模式可能会继承其他人编写的遗留代码,例如有人给Object构造函数追加了属性或者方法,那么内置构造函数模式就继承了非期望的属性和方法

  4,内置构造函数模式中传递的参数不确定时,生成的对象类型也不确定,见下面的例子

var a = new Object();
console.log(a.constructor===Object);//true
var b = new Object(1);
console.log(b.constructor===Number);//true
var c = new Object("string");
console.log(c.constructor===String);//true

二自定义构造函数

  1,使用new运算符调用一个函数,那么该函数就是自定义的构造函数,而生成的对象就是该自定义构造函数的实例

var Person = function (name) {
this.name = name;
this.say = function () {
return "I am" + this.name;
};
};
var a = new Person("Amanda");

  2,下面我们来讲解一下使用new运算符调用函数的过程中发生了什么

    (1)首先创建一个空的对象,并且this指针指向该对象,同时继承该对象的prototype,原型中的constructor指针指向自定义的构造函数,建立起来,实例与构造函数还有原型的关联

    (2)其次自定义构造函数中的属性和方法加入到该对象中

    (3)最后如果自定义构造函数中没有return语句,或者return语句返回的值不是对象,则隐式返回this所引用的对象,若return返回的值是对象,则直接返回该对象

function Person(){
this.name="jjj",
this.age=18;
this.sayName=function(){
console.log(this.name);
}
return this.name;//这里返回的是非对象,使用new运算符生成的实例会忽略该return语句,直接返回该实例
}
var ss=new Person();
console.log(ss); //{name:"",age:....}

三 强制使用new的模式

调用自定义构造函数时,没有使用new运算符引发的后果,没有使用new运算符的话,this会指向window,那么原本属于实例的属性和方法,就会成为全局的变量和函数

var Person = function (name){
this.name ="Amanda";
this.say = function(){
return "I am"+this.name;
}
return this;
};
var a = Person();
console.log(name);//Amanda
console.log(a);//window

  3.1 命名约定:自定义的构造函数,首字母要大写,其他的方法和函数的首字母小写

  3.2 使用that:为了避免忘记使用new操作符,我们给出一种使用taht的方案

  但是这种方案有一个问题,就是Person构造函数定义的原型上的方法和属性是无法访问到的,所以在3.3中给出了自调用构造函数的方法

function Person(){
var that={
};
that.name="jjj",
that.age=18;
that.sayName=function(){
console.log(that.name);
}
return that;
}
var ss=Person();
console.log(ss.name);//jjj  
function Person(){
var that={
};
that.name="jjj",
that.age=18;
that.sayName=function(){
console.log(that.name);
}
return that;
}
Person.prototype.sayAge=function(){
console.log(this.age);
};
var ss=Person();
console.log(ss.dd);//undefined

 3.3 自调用构造函数

  在判断this的类型不是Person的时候,我们使用new 再次调用Person,这里相当于调用了两次Person,所以222的log会出现两次,位于原型链上的sayAge方法也可以被ss实例调用到

function Person(){
console.log("222");
if(!(this instanceof Person)){
return new Person();
}
console.log("111");
this.name="ssww";
this.age=18;
}
Person.prototype.sayAge=function(){
console.log(this.age);
};
var ss=Person();
console.log(ss.name);//ssww
ss.sayAge();//

aaarticlea/png;base64,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" alt="" />

四数组字面量

  4.1 数组字面量法

  [1,2,{},"",true.....]

  4.2 数组构造函数的特殊性(使用new Array构建数组)

  在使用Array这个内置构造函数创建对象时,传入其中的参数必须是正整数,其含义是创建一个拥有n个元素的数组,这n个元素每个的值均为"undefined"

  因此在传入的参数不是正整数时就会引起范围错误,说数组长度是不合法长度

new Array(3);//创建一个长度为3的数组,数组中的三个元素均为undefined
new Array(3.14);//如果传递的参数是一个非整数的字符,则会出现范围错误:不合法的数组长度

而我们使用Array创建对象时,传入其中的参数,往往是想传递第一个元素,而不是数组的长度,因此,为了避免出现这种情况,我们尽量避免使用Array这个内置构造函数来创建数组,建议使用数组字面量方法

  4.3 检查数组性质:如何检测某一个对象是否是数组

  判断一个值是不是数组,我们一般使用length或者看该值有没有slice方法,但是这个是不健壮的

  ECMAScript5 定义了Ayyay.isAyyay方法,如果该值是数组就会返回true

  为了兼容,我们对其做了一下完善

Array.isArray([]);//true;
if( typeof Array.isArray==="undefined"){
Array.isArray=function(arg){
return Object.prototype.toString.call(arg)==="[object Array]";
}
}
var arg=[1,2,3];
alert(Object.prototype.toString.call(arg));//[object Array]

五JSON

  1,首先我们来看一下JSON的定义,JSON是JS对象表示法,与对象字面量很相似,都是键值对,

  2,JSON与对象的区别:JSON中的属性名称必须使用引号包裹才能成为合法的JSON,而对象字面量是仅当属性名不是有效标示符的时候才需要引号,例如属性名称之间有空格

  3 在JSON中,不能使用函数或者正则表达式字面量

var a={
"first name":"Jhon"
};//first与name之间的空格是非法字符,因此该对象字面量a的first name属性使用了引号
var a={
first:"Jhon"
};//该定义就属于对象字面量
var a={
"first":"Jhon"
};//而该定义就属于JSON

  5.1 使用JSON

var jsonStr='{"name":"jjj","age":19}';
//eval('('+jsonStr+')');//反模式
$.parseJSON(jsonStr);

六 正则表达式字面量

  1 创建正则表达式的两种方式:1 new RegExp()构造函数;2 使用正则表达式字面量  

var reg=/\\/gm;//字面量
var reg=new RegRxp("\\\\","gm");//构造函数  

  6.1 正则表达式字面量语法

    1 使用/来包装正则表弟模式

    2 在第二个斜杠后面,可以将该模式修改为不加引号的字母形式,g:全局匹配;m:多行匹配;i:大小写敏感匹配

    3 var re=/pattern/gmi;

七 基本值类型包装器

  1 js中有5种基本的值类型,分别是数字,字符串,布尔,null和undefined,除了null和undefined,其他三种都是基本包装对象,可以使用Number,String,Boolean来创建包装对象

  2 首先我们先来看一下基本数字和数字对象之间的差异

var n=100;
console.log(typeof n);//number
var m=new Number(100);
console.log(typeof m);//object
var a=Number(1);
//当使用包装类型的构造函数,却不使用new运算符时,包装构造函数则会将传递给它们的参数转化为一个基本类型值
console.log(typeof a);//number

  3 包装对象包含一些属性和方法,例如:

    数字对象的toFixed、toExponential、toPrecision等

    字符串对象有substr、charAt、toLowerCase、length等

    但是基本值类型在调用这些方法的时候,会在后台被临时转换成一个对象,并且表现的如同一个对象一样,在调用结束后,又转化为基本值类型

  4 除了使用typeof返回的类型不同以外,包装对象与基本值类型另外一个不同在于:

  使用包装对象可以为其添加新的属性和方法,但是基本值类型不同

var str="hello world";
str.smile=true;
console.log(str.smile);//undefined
var string=new String("hello world");
string.smile=true;
console.log(string.smile);//true

  5 在使用包装对象的时候,如果不使用new操作符,那么相当于基本值类型,不再是包装对象

八错误对象

1 JS中有一些内置错误构造函数,例如Error(),SyntaxError(),TypeError,RangeError等,这些错误构造函数都带有throw语句

  2  这些对象的实例拥有下面一系列的属性:name:构造函数的名称属性;message:创建对象时传递给构造函数的字符串

  3 throw适用于任何对象,并不一定是由某个错误构造函数所创建的对象,因此,我们可以使用throw抛出自己的对象,然后传递给catch处理

try{
throw{
name:"q",
message:"ww",
rowNum:"2"
};
}catch(e){
console.log(e.rowNum);//2
}
try{
throw new Error("Oops,出错了");
}catch(e){
console.log(e.message);//Oops,出错了
}

九 小结

  1 对象字面量表示法是一种优美的创建对象的方式,以大括号包装,以逗号分隔的键值对

  2 确保自定义的构造函数表现的如同使用new运算符的方法

  3 JSON

  

Javascript模式(第三章字面量与构造函数)------读书笔记的更多相关文章

  1. 《JavaScript模式》第3章 字面量和构造函数

    @by Ruth92(转载请注明出处) 第3章:字面量和构造函数 一.创建对象的三种方式 // 对象字面量 var car = {goes: "far"}; // 内置构造函数(反 ...

  2. <<Javascript Patterns>>阅读笔记 – 第3章 字面量和构造函数

    对象字面量 首先给出对象字面量的定义语法: 1. 将对象定义在一对括号中(左大括号“{”和右大括号”}”) 2. 对象中以逗号分隔属性和方法. 每个属性或方法以key-value的形式出现, key和 ...

  3. 《javascript模式--by Stoyan Stefanov》书摘--字面量和构造函数

    二.字面量和构造函数 1,能够使用对象字面量时,就没理由使用new Object构造函数 // 一个空对象var 0 = new Object();console.log( o.constructor ...

  4. JavaScript 模式》读书笔记(3)— 字面量和构造函数3

    这是字面量和构造函数的最后一篇内容,其中包括了JSON.正则表达式字面量,基本值类型包装器等知识点.也是十分重要的哦. 五.JSON JSON是指JavaScript对象表示以及数据传输格式.它是一种 ...

  5. 《JavaScript 模式》读书笔记(3)— 字面量和构造函数1

    新的篇章开始了,本章开始,所有的内容都是十分有价值和意义的.本章主要的内容包括对象字面量.构造函数.数组字面量.正则字面量.基本值类型字面量以及JSON等.在大家的工作和实际应用中也有一定的指导意义. ...

  6. 列表的实现-----数据结构与算法JavaScript描述 第三章

    实现一个列表 script var booklist = new List(); booklist.append('jsbook'); booklist.append('cssbook'); book ...

  7. 《TCP/IP详解卷1:协议》第19章 TCP的交互数据流-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  8. 《Effective C++》第3章 资源管理(2)-读书笔记

    章节回顾: <Effective C++>第1章 让自己习惯C++-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(1)-读书笔记 <Effecti ...

  9. 《Effective C++》第1章 让自己习惯C++-读书笔记

    章节回顾: <Effective C++>第1章 让自己习惯C++-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(1)-读书笔记 <Effecti ...

随机推荐

  1. Oracle中的MD5加密详解

    一.技术点 1. DBMS_OBFUSCATION_TOOLKIT.MD5 DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFU ...

  2. GnuRadio Hacking①:使用GnuRadio+SDR破解固定码无线遥控

    0×01 信号捕获 在这篇文章中,我们将使用GnuRadio+SDR硬件对某品牌型号的无线跳蛋进行无线重放攻击的演示. 市面上常见的无线遥控工作的频段,通常工作在315Mhz.433Mhz,也有少数的 ...

  3. 子级与父级的margin合并的问题

    子级加上了margin以后,发现其父级也移动了相应的margin值.外边距合并.换成padding;在父级上加overflow:hidden;

  4. Unity 3D 基础知识方法

    A. 组件中默认的方法有如下:            Awake,Start,Update,OnGUI,OnDisable,OnEnable,OnDestory,LateUpdate,FixedUpd ...

  5. Xml 序列化

    1 XML序列化只能序列化对象的公有属性,并且要求对象有一个无参的构造方法,否者无法反序列化. 2 [Serializable]和[NonSerialized]特性对XML序列化无效!所以使用XML序 ...

  6. Asp.net Web.Config - 配置元素 caching

    Asp.net Web.Config - 配置元素 caching 记得之前在写缓存DEMO的时候,好像配置过这个元素,好像这个元素还有点常用. 一.caching元素列表   元素 说明 cache ...

  7. Web Form 和asp.net mvc 差别

    Asp.net MVC 和web Form的基本区别 Web Form ASP.NET MVC 视图和逻辑紧密耦合 视图和逻辑分离 页面(给予文件的URL) 控制器(基于路由的URL) 状态管理(视图 ...

  8. 微信公众号红包接口开发PHP开发 CA证书出错,请登陆微信支付商户平台下载证书

    微信红包接口调试过程中一直提示“CA证书出错,请登陆微信支付商户平台下载证书”,经反复调试,大致解决方法如下: 1.首先确保CA证书的路径是否正确,一定得是绝对路径,因为是PHP开发的,这里需要三个p ...

  9. sublime text 2 ubuntu安装及插件管理

    参考 dudumao 1.下载Sublime Text2官网下载地址:http://www.sublimetext.com 2.安装Sublime Text2解压即可使用 $ sudo tar -jx ...

  10. CGGeometry类定义几何元素的结构和操作几何元素的函数。

    1.数据类型: CGFloat: 浮点值的基本类型CGPoint: 表示一个二维坐标系中的点CGSize: 表示一个矩形的宽度和高度CGRect: 表示一个矩形的位置和大小 typedef float ...