JavaScript对象及初始面向对象

1.创建对象

   在JS当中,对象分为两种: 自定义对象    内置对象

  1.1 自定义对象

    与Java中创建对象一样,创建自定义对象的最简答的方式就是使用操作符new 创建一个object的实例,然后通过"."为其添加属性和方法

    语法:  var 对象名称 =new Object();

    或者使用字面量赋值的方式在定义对象的时候为其添加属性和方法

    var 对象名称={

    属性1:值1,

    属性2,值2,

    函数名:function(){

    //函数体

        }  

    }

  1.2 内置对象

    JS的内置对象是一种特殊的数据,常见的内置对象如下:

  • String(字符串)对象
  • Date(日期)对象
  • Array(数组)对象
  • Boolean(逻辑)对象
  • Math(算数)对象
  • RegExp对象                           正则表达式

   2. 构造函数

    所谓的构造函数就是一个普通的函数,但是内部使用了this变量,对构造函数使用new操作符,就能生成实例

    function Flower(name,genera){

      this.name=name;

      this.genera=genera;

      this.showName=function(){

    }

    }

    var flower=new Flower("曼陀罗花","茄科");

    使用构造函数创建新实例,必须使用new操作符,以这种方式调用构造函数实际上会经历以下四个步骤

  1. 创建一个新对象
  2. 将构造函数的作用域赋给新对象(this就指向了这个新对象)
  3. 执行构造函数中的代码
  4. 返回新对象

  3.原型对象

  3.1 prototype
  函数定义的时候,函数本身会默认为该函数创建一个prototype的属性,而如果用new 运算符来生成一个对象的时候就没有prototype属性。而prototype也是一个对象,默认情况下prototype包含了2个属性,一个是constructor,另外一个是[[prototype]](大多数浏览器下显示为__proto__)。constructor属性是一个指向prototype属性所在函数的指针。

  3.2 constructor

    constructor始终指向创建当前对象的构造函数。我们知道每个函数都有一个默认的属性prototype,而这个prototype的constructor默认指向这个函数

  3.3. 确定原型和实例的关系

  使用instanceof 操作符,只要用这个操作符来测试实例与原型链中出现过的构造函数,结果就会返回True

  4.1原型
    每个函数都有prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象的用途是包含特定类型的所有实例共享的属性和方法,即这个原型对象是用来给实例共享属性和方法的。
  而每个实例内部都有一个指向原型对象的指针。

  4.2原型链

    每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含指向原型对象内部的指针。我们让原型对象的实例(1)等于另一个原型对象(2),
  此时原型对象(2)将包含一个指向原型对象(1)的指针,
  再让原型对象(2)的实例等于原型对象(3),如此层层递进就构成了实例和原型的链条,这就是原型链的概念

原文地址:https://www.cnblogs.com/yjc1605961523/p/11004266.html