JavaScript04:面向对象
标准对象
typeof关键字获取对象的类型
typeof 123 //'number'
typeof "123" // 'string'
typeof true // 'boolean'
typeof NaN // 'number'
typeof [] // 'object'
typeof {} // 'object'
typeof Math.abs // 'function'
typeof undefined // 'undefined'
typeof null // 'object'
Date
我的网页
JSON
JSON(JavaScript Object Notation)是一种层次结构清晰的轻量级数据交换格式,任何JavaScript对象都可以转换为JSON格式,语法格式也一样
把JavaScript对象序列化成一个JSON格式的字符串,就能够通过网络传递给其他计算机
把JSON格式的字符串反序列化成一个JavaScript对象,就可以在JavaScript中直接使用这个对象
我的网页
RegExp
正则表达式:可以直接通过/正则表达式/写出来,或者是通过new RegExp('正则表达式')创建一个RegExp对象
\d可以匹配一个数字,\w可以匹配一个字母或数字,.可以匹配任意一个字符,*表示任意个字符(包括0个),+表示至少一个字符,?表示0个或1个字符,+?表示非贪婪匹配,g表示全局搜索,{n}表示n个字符,{n,m}表示n-m个字符(不能有空格),\s可以匹配一个空格(也包括Tab等空白符),\可以转义特殊字符,[]表示范围(如[0-9a-zA-Z_]可以匹配一个数字、字母或者下划线),A|B可以匹配A或B,()表示分组(可以提取子串),^表示行的开头,$表示行的结束
我的网页
原型链
JavaScript对每个创建的对象都会设置一个原型,指向它的原型对象
原型链:当我们用obj.xxx访问一个对象的属性时,JavaScript引擎先在当前对象上查找该属性,如果没有找到,就到其原型对象上找,如果还没有找到,就一直上溯到Object.prototype对象,最后,如果还没有找到,就只能返回undefined
我的网页
原型继承
JavaScript不区分类和实例的概念,而是通过原型(prototype)来实现面向对象编程,将其他对象作为原型创建一个类似的对象,间接达到继承的目的
JavaScript的原型链和Java的Class区别在于,它没有“Class”的概念,所有对象都是实例,所谓继承关系不过是把一个对象的原型指向另一个对象而已
因此可以随意变更要继承的原型对象,但同时只能继承一个原型
我的网页
class继承
几乎和Java定义类一样,不过构造器方法统一用constructor()方法表示,子类构造器中必须要先调用父类构造器
我的网页