面向对象编程回顾和总结(1)

我们都知道,JavaScript 语言的对象体系,不是基于“类”的,而是基于构造函数(constructor)和原型链(prototype)。JavaScript 语言使用构造函数作为对象的模板。所谓”构造函数”,就是专门用来生成对象的函数。它提供模板,描述对象的基本结构。一个构造函数,可以生成多个对象,这些对象都有相同的结构。

构造函数的命名通常是以大写首字母开头:

var Person=function(){

  this.name="Car";

};

或者

function Person(){

  this.name="车";

};

在这里需要和大家提醒的是,既然构造函数是创建实例对象的模板,这里面一定有一个指向实例对象的this,你可以把this看成实例对象,this所拥有的属性和方法通过new使实例对象继承构造函数中属性和方法;

所以,构造函数有两个大特点:

 

  • 函数体内部使用了this关键字,代表了所要生成的对象实例。
  • 生成对象的时候,必需用new命令,调用Person函数。

 

 

var Person = function (){
this.price = 1000;
};

 

var v = Person();
console.log(v.price);//undefind
console.log(price);//1000 what? 怎么成了一个全局变量?

 

 

所以这里提示大家的就是:在new一个实例时 ,一定要加new啊,当然如果不加也可以有别的方法避免这类情况出现;

 

 

我们知道了如何实例化一个对象,那么是不是也 非常也搞搞清楚这伟大的new先生在这之中起了什么神奇的作用呢?

 

  1. 创建一个空对象,作为将要返回的对象实例
  2. 将这个空对象的原型,指向构造函数的prototype属性
  3. 将这个空对象赋值给函数内部的this关键字
  4. 开始执行构造函数内部的代码

 

记住new命令最终返回的是一个对象,且这个对象的原型(__proto__)就是构造函数的原型对象

 

posted on 2017-10-12 16:38  龟和兔子赛跑  阅读(87)  评论(0)    收藏  举报

导航