博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript模式读书笔记 第3章 字面量和构造函数
阅读量:5124 次
发布时间:2019-06-13

本文共 2699 字,大约阅读时间需要 8 分钟。

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>

转载于:https://www.cnblogs.com/jingLongJun/p/4491080.html

你可能感兴趣的文章
leetcode 91. Decode Ways
查看>>
sql server数据库还原方法
查看>>
Android--Facebook Login without LoginButton
查看>>
CF某gym G
查看>>
web语义化与h5新增标签
查看>>
char 型数组与 char型字符串
查看>>
C# FTP 上传、下载、获取文件列表
查看>>
转:linux中fork()函数详解
查看>>
url中#号的作用
查看>>
Java中有关Null的9件事
查看>>
SpringBoot使用Jsp
查看>>
团队开发之团队介绍
查看>>
Linux下,C++编程论坛题目抽取
查看>>
贪吃蛇 WPF
查看>>
IOS微信登录封装类
查看>>
[UE4]更新UI的三种方式
查看>>
[UE4]单机游戏改网络游戏,不完全清单
查看>>
Chrome 调试动态加载的js
查看>>
2018-2019-2 20165212《网络攻防技术》Exp5 MSF基础应用
查看>>
MATLAB 图形着色
查看>>