JS创建类和对象的两种不同方式

 更新时间:2014年08月08日 10:06:38   投稿:whsnow  
定义了一个新的函数, 你实际上声明了一个新的类, 而这个函数本身就相当于类的构造函数,下面为大家展示创建一个新类的两种不同方式

在JavaScript中, 当你定义了一个新的函数, 你实际上声明了一个新的类, 而这个函数本身就相当于类的构造函数。下面的代码向你展示了两种不同的方式来创建一个新的Person类, 而Person.prototype的定义也紧跟在函数定义之后。

var Person = function(name) { // 一个匿名函数, 并将这个函数赋值给一个Person变量, 此时Person成为一个类 

this.name = name; 

} 

function Person(name) { // 直接定义一个叫做Person的函数表示Person类 

this.name = name; 

} 

Person.prototype = { // 定义Person的prototype域 

printName: function() { // 定义一个print函数 

alert(this.name); 

} 

}

当你通过函数的方式声明了一个类之后, 你就可以通过new操作符来实例化这个类。这样, 你就可以调用类的成员函数来完成你的逻辑。

var person = new Person("Joe Smith"); // 使用new操作符来新建一个Person的实例, 并赋给变量person 
person.printName(); // person就可以看作是一个实例的引用(reference), 所以可以通过这个引用来调用Person类中的成员函数

我们来总结一下创建一个新的类的实例的整个流程和步骤:

1. 通过定义一个函数的方式(匿名或者实名)来声明一个新的类.
2. 如果有必要, 定义这个新的类的prototype域.
3. 使用new操作符紧跟你所定义的函数来创建一个新的类的实例. 一旦JavaScript编译器碰到了new操作符, 它实际上创建了一个空的类实例变量.
4. 将所有这个类的prototype域中的属性与方法复制到这个新的实例中, 并将其成员函数中所有的this指针指向这个新创建的实例.
5. 接下来, 执行紧跟在new操作符后面的那个函数.
6. 当你执行这个函数时, 如果你试图对一个不存在的属性进行赋值, JavaScript编译器将自动为你在这个实例范围内新创建这个属性.
7. 函数执行完毕后, 将这个初始化完成的实例返回.

在Prototype中, 使用Class对象, 你可以以一个比较简单的方式来声明一个新的对象。通过使用Class.create(), prototype为你创建了一个默认的构造函数initialize(), 一旦你实现这一函数, 就可以以一个类似Java中构造函数的方式来创建一个新的类的实例。

相关文章

  • THREE.JS入门教程(3)着色器-下

    THREE.JS入门教程(3)着色器-下

    Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D本文将介绍模拟光照/Attribut变量/更新着色器材质/更新着色器材质等等感兴趣的朋友可以了解下啊
    2013-01-01
  • JS中Object对象的原型概念基础

    JS中Object对象的原型概念基础

    本篇文章是一篇关于JS学习的基础内容,学习Object对象的原型概念,有兴趣的朋友参考下吧。
    2018-01-01
  • JavaScript表达式:URL 协议介绍

    JavaScript表达式:URL 协议介绍

    javascript:后面可以是表达式或者使用分号分隔的表达式集合如javascript: 5 + 4,感兴趣的朋友可以参考下或许可以帮助到你
    2013-03-03
  • 跨域请求的完美解决方法(JSONP, CORS)

    跨域请求的完美解决方法(JSONP, CORS)

    下面小编就为大家带来一篇跨域请求的完美解决方法(JSONP, CORS)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • JavaScript高级程序设计(第3版)学习笔记 概述

    JavaScript高级程序设计(第3版)学习笔记 概述

    在JavaScript面世之初,没有人会想到它会被应用的如此广泛,也远比一般人想象中的要复杂强大的多,在我自己学习的过程中,曾经有过多次震撼
    2012-10-10
  • 在JavaScript中操作时间之getYear()方法的使用教程

    在JavaScript中操作时间之getYear()方法的使用教程

    这篇文章主要介绍了在JavaScript中操作时间之getYear()方法的使用教程,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • javascript 函数使用说明

    javascript 函数使用说明

    其实通俗的说就是一个有名称的代码段,方便重用。
    2010-04-04
  • 从零学JSON之JSON数据结构

    从零学JSON之JSON数据结构

    这篇文章主要介绍了JSON数据结构的相关知识,需要的朋友可以参考下
    2014-05-05
  • javascript Event对象详解及使用示例

    javascript Event对象详解及使用示例

    Event代表事件状态,如事件发生的元素,键盘状态,鼠标位置和鼠标按钮状态,event对象只在事件发生的过程中才有效,本文整理了一些,喜欢的朋友可以学习下
    2013-11-11
  • W3C Group的JavaScript1.8 新特性介绍

    W3C Group的JavaScript1.8 新特性介绍

    在了解了JavaScript1.7的相关更新后,我们再继续关注JavaScript1.8的新特性。在W3C Group带来的JavaScript系列特性文章中,JavaScript1.8的更新相对较少!
    2009-05-05

最新评论