(补)JavaScript之对象基础


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

一     JavaScript对象分类

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

  1、  本地对象

  这类对象是独立于宿主环境的对象,不因宿主环境的改变而有任何不同。

  Object

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

  Function

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

  Array

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

  String

  文本对象。

  Boolean

  布尔对象。

  Number

  数字对象。

  Date

  时间对象。

  RegExp

  正则表达式对象。

  Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError

  各种错误对象。

  这里不必深究这些对象,只需要知道有这些东西即可,因为每个对象我后面都会单独开篇讲解。

  2、  内置对象

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

  Global

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

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

  了解详情请移步W3school

  Math

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

  下一篇将详细介绍Math对象。

  3、  宿主对象

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

二   JavaScript对象的创建

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

  1、  字面量方式

1 var obj = {
2    name:"ren",
3    age:12,
4    say:function(){
5         alert("hello,my name is " + this.name);
6     }  
7 };

  2、  Object()方式

1 var obj = new Object();
2 obj.name = "ren";
3 obj.age = 12;
4 obj.say = function(){
5         alert("hello,my name is " + this.name);
6     }

  3、  构造函数方式

1 function CreateObj(){
2     this.name = name;
3     this.age = age;
4     this.say = function(){
5             alert("hello,my name is " + this.age);
6         };
7 }
8 var obj = new CreateObj();

 

三   对象使用

  1,  使用对象的属性

 1 var obj = {
 2    name:"ren",
 3    age:12,
 4    say:function(){
 5         alert("hello,my name is " + this.name);
 6     }  
 7 };
 8 
 9 console.log(obj.name);//"ren"
10 console.log(obj["name"]);//"ren"

        2,使用对象的方法

          接上面的obj使用

1 obj.say();//"hello,my name is ren"
2 obj.say;//ƒ (){alert("hello,my name is " + this.name);}
3 //不带(),将返回函数的定义

 


作者:任风来去匆匆,发布于:2019/08/13
原文:https://www.cnblogs.com/ruhaoren/p/11344941.html