下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

web前端:JavaScript之对象基础

作者:任风来去匆匆     来源: https://www.cnblogs.com/ruhaoren/p/11344941.html点击数:779发布时间: 2020-02-28 11:07:11

标签: JavaScript正则表达式web前端

Web开发

  Javascript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发

  现实世界是由无数的事物或对象组成,事物都有各独特的属性和一些动作行为,一般我们可以通过事物的某些特征或行为动作描述它。JavaScript中也是如此,JavaScript对象是多个键值对的集合,键我们称之为对象的属性,值称之为属性值。如果某个属性的值是函数,那么我们称这个属性是该对象的一个方法。

  一JavaScript对象分类

  JS中对象大致可以分为3大类

  1、本地对象

  这类对象是独立于宿主环境的对象,不因宿主环境的改变而有任何不同,它们由ECMAScript(JavaScript核心)提供并维护。

  Object

  我们称他为原始对象,JS中其他的本地对象都继承自他,他是所有对象的祖先,他的所有方法和属性都会出现在其他对象中。

  Function

  函数其实是功能完整的对象,他也有自己的属性和方法,我们使用function关键字定义的所有函数都属于该类。

  Array

  数组对象比较特别,因为它的键是从0开始的数字。并且是用中括号“[]”包裹的。

  String

  文本(字符串)对象。

  Boolean

  布尔对象。

  Number

  数字对象。

  Date

  时间对象。

  RegExp

  正则表达式对象。

  Error:EvalError(全局eval()功能错误),RangeError(值范围错误),ReferenceError(引用错误),SyntaxError(语法错误),TypeError(值类型错误)

  各种错误对象。这里不必深究这些对象,只需要知道有这些东西,调试的时候查询文档即可。

  注意,我们自定义的对象绝大部分最终都继承自Object,所以它们也属于此范畴。

  2、内置对象

  内置对象也是独立于宿主环境的,但它只有在程序被执行之前才出现。

  Global

  全局对象是预定义的对象,作为JavaScript的全局函数和全局变量的占位符,全局对象只是一个对象,而不是一个类,既没有构造函数也无法被实例化。

  学习基础知识阶段,大家不必详细了解构造函数相关知识,这里的重点是知道有Global这么一个对象即可。

  了解详情请移步W3school。

  Math

  Math对象和Global一样,没有构造函数,也不能使用new实例化。它是专门用于执行数学计算的数学函数和数学常量的集合。

  3、宿主对象

  所有由宿主实现的对象都属于该类,JavaScript中的宿主对象是web对象,所有DOM和BOM对象都是宿主对象。关于它们,以后会专门讲解。

  4,另一种分类

  内置对象(上面的本地对象),宿主对象(同上),自定义对象(所有实例对象)。

  二JavaScript对象的创建

  JavaScript中创建对象有4种常用方式:

  1、字面量方式

  1varobj={

  2name:"ren",

  3age:12,

  4say:function(){

  5alert("hello,mynameis"+this.name);

  6}

  7};

  2、Object()方式

  1varobj=newObject();

  2obj.name="ren";

  3obj.age=12;

  4obj.say=function(){

  5alert("hello,mynameis"+this.name);

  6}

  3、构造函数方式

  1functionCreateObj(){

  2this.name=name;

  3this.age=age;

  4this.say=function(){

  5alert("hello,mynameis"+this.age);

  6};

  7}

  8varobj=newCreateObj();

  4、Object.create()

  1varproto={name:'ren'};

  2varobj=Object.create(proto);

  3//proto将成为obj对象的原型,原型相关的知识将在以后详细介绍

  三对象使用

  1,使用对象的属性

  1varobj={

  2name:"ren",

  3age:12,

  4say:function(){

  5alert("hello,mynameis"+this.name);

  6}

  7};

  8

  9console.log(obj.name);//"ren"

  10console.log(obj["name"]);//"ren"

  2,使用对象的方法

  接上面的obj使用

  1obj.say();//"hello,mynameisren"

  2obj.say;//ƒ(){alert("hello,mynameis"+this.name);}

  3//不带(),将返回函数的定义

  3,删除对象的属性或方法

  删除对象的属性或方法使用关键字:delete,返回true表示删除成功,false表示删除失败

  1varobj={

  2name:"ren",

  3age:12,

  4say:function(){

  5alert(this.name);

  6}

  7};

  8deleteobj.name;//true

  9console.log(obj);//{age:12,say:function(){alert(this.name);}}

  4,冻结对象

  很多时候,我们创建一个对象之后不希望它再被任何人以任何方式修改,这时候你可以使用Object.freeze()方法冻结它。

  1varobj={name:'ren'};

  2Object.freeze(obj);

  3obj.name='ner';//'ner'

  4obj.age=12;//'12'

  5console.log(obj);//{name:'ren'}

  javascript提供了丰富的运算功能,包括算术运算、关系运算、逻辑运算和连接运算。

赞(11)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程