`
qiannianhua
  • 浏览: 17755 次
社区版块
存档分类
最新评论

Javascript 面向对象编程:用构造函数模式创建对象

 
阅读更多

       在ECMAScript中的构造函数可用来创建特定类型的对象,想Object和Array这样的原生构造函数,在运行是会自动出现在执行环境中。因此,可以创建自定义的构造函数,从而定义对象类型的属性和方法。

      1、如下例子,使用构造函数创建原型对象:

function Person(name,age){
    this.name=name;
    this.age=age;
               this.sayName = function(){alert(this.name)};
  }

         注意:

                 1)、函数名Person使用的是大写字母P;

                 2)、构造函数本身也是函数,之不过可以用来创建对象而已。

 

    2、要创建Person的新实例,必须使用new操作符:

var person1 = new Person("zhangsan",20);
var person2 = new Person("lisi",21);
alert(person1.name); 
alert(person1.age); 

         调用构造函数会经历一下4个步骤:

         1)、创建一个新的对象;

         2)、将构造函数的作用域赋给新对象;

         3)、执行构造函数中的代码;

         4)、返回新对象。

 

3、将构造函数当作函数:构造函数与其他函数的唯一区别,就在于调用它们的方式不同,不过构造函数毕竟也是函数,不存在定义构造函数的特殊语法。

      1)、当作构造函数使用:

var person = new Person("zhangsan",20);  
person.sayName();    //"zhangsan"

     展示了构造函数的典型用法,即使用new操作符来创建一个新对象。

        2)、作为普通函数使用:

Person("lisi", 21);          //添加到window
window.sayName();          //"lisi"

     展示了不使用new操作符调用Person()会出现什么结果:属性和方法都被添加给window对象了。

       3)、在另一个对象的做的作用域中调用:

var a = new Object();
Person.call(a, "zhangsan", 20);
a.sayName();                        //"zhagnsan"

     使用call()在某个特殊的对象的作用域中调用Person()函数。

分享到:
评论

相关推荐

    Javascript面向对象编程(二) 构造函数的继承

    今天要介绍的是,如何生成一个”继承”多个对象的实例。... 构造函数绑定 最简单的方法,大概就是使用call或apply方法,将父对象的构造函数绑定在子对象上,也就是在子对象构造函数中加一行: 代码如下

    javascript面向对象编程的几种模式详解

    构造函数与字面量结合模式、动态原型模式、寄生构造模式、稳妥构造模式、借调函数。 用哪个就把哪个的注释打开哦!

    深入剖析JavaScript面向对象编程

    Javascript 面向对象编程:构造函数的继承 本节主要介绍,如何生成一个”继承”多个对象的实例。 比如,现在有一个”动物”对象的构造函数, function Animal(){ this.species = "动物"; } 还有一个”猫”对象的...

    深入理解JavaScript系列

    深入理解JavaScript系列(26):设计模式之构造函数模式 深入理解JavaScript系列(27):设计模式之建造者模式 深入理解JavaScript系列(28):设计模式之工厂模式 深入理解JavaScript系列(29):设计模式之装饰...

    深入理解JavaScript系列(.chm)

    深入理解JavaScript系列(26):设计模式之构造函数模式 深入理解JavaScript系列(27):设计模式之建造者模式 深入理解JavaScript系列(28):设计模式之工厂模式 深入理解JavaScript系列(29):设计模式之装饰...

    javascript 面向对象编程基础:封装

    但是(这里本人要苦大仇深、痛心疾首地说),“而Ajax的出现使得复杂脚本成为必需的组成部分,这就对 JavaScript 程序设计提出了新的要求,很多Ajax应用开始利用JavaScript面向对象的性质进行开发,使逻辑更加清晰。...

    Javascript面向对象编程(三) 非构造函数的继承

    今天是最后一个部分,介绍不使用构造函数实现”继承”。... 这里要注意,这两个对象都是普通对象,不是构造函数,无法使用构造函数方法实现”继承”。 二、object()方法 json格式的发明人Douglas Crockford,提

    extend:ES5 面向对象编程,构造函数继承的封装

    Extendv1.0.0ES5 面向对象编程,构造函数继承的封装。Install/安装克隆这个项目的源码或者下载压缩文件文件后,引入build文件夹内的 extend.mini.js 即安装完成。[removed][removed]Using/使用例子: // 构造函数1 ...

    写给大家看的面向对象编程书(第3版).[美]Matt Weisfeld(带详细书签).pdf

    第10章 用UML创建对象模型 154 10.1 什么是UML 154 10.2 类图的结构 155 10.3 属性和方法 156 10.3.1 属性 156 10.3.2 方法 157 10.4 访问指示 157 10.5 继承 158 10.6 接口 159 10.7 组合 160 10.7.1 ...

    worldwindjava源码-javascript-oop:面向对象编程和面向对象JavaScript

    中的面向对象编程 学习目标 使用构造函数生成特定类型的对象。 使用构造函数将属性附加到新对象。 回想一下在构造函数中定义方法的成本。 通过将自定义对象附加到原型来定义自定义对象的方法。 使用 ES6 类语法重构...

    JavaScript面向对象程序设计中对象的定义和继承详解

    本文实例讲述了JavaScript面向对象程序设计中对象的定义和继承。分享给大家供大家参考,具体如下: 在面向对象的Javascript编程中,希望代码优雅有高效是非常重要的。javascript中不存在类的概念,只有对象。要想把...

    1.JavaScript面试真题-210页.pdf

    面向对象编程:JavaScript支持面向对象编程范式,可以使用构造函数和原型链来定义和扩展对象。但它也是一门多范式语言,支持函数式编程和事件驱动编程。 动态类型:JavaScript是一种动态类型语言,变量无需声明类型...

    OOP:使用p5.js进行游戏开发的面向对象编程(OOP)

    p5.j​​s用于游戏开发的面向对象编程(OOP) 在本课程中,我们使用JavaScript库及其Java版本 。 以下是课程步骤: 课程步骤 步骤1:一个实例 一实例+功能向右移动。 。 步骤2:两个执行个体 两个实例+函数向右...

    javascript 面向对象编程基础:继承

    我们看到这里继承的概念是多么的直白,“拷贝一个类的prototype 到另外一个类”,好,Code is cheap,看代码: function class1() { } function class2() { } class2.prototype = class1.prototype;...

    JavaScript 面向对象编程(2) 定义类

    本文承接上一篇JavaScript面向对象编程(1) 基础。 上篇说过,JavaScript没有类的概念,需要通过函数来实现类的定义。先通过一个例子说明: 代码如下: function myClass() { var id = 1; var name = “johnson”; ...

    源文件程序天下JAVASCRIPT实例自学手册

    4.1 面向对象编程与基于对象编程 4.1.1 什么是对象 4.1.2 面向对象编程 4.1.3 面向对象编程:继承 4.1.4 面向对象编程:封装 4.1.5 面向对象编程:多态 4.1.6 基于对象编程 4.2 JavaScript对象的生成 4.2.1 HTML文档...

    JavaScript 面向对象编程(1) 基础

    1. 用JavaScript实现类 JavaScritpt没有专门的机制实现类,这里是借助它的函数允许嵌套的机制来实现类的。一个函数可以包含变量,又可以包含其它函数,这样,变量可以作为属性,内部的函数就可以作为成员方法了。...

    JavaScript基础和实例代码

    4.1 面向对象编程与基于对象编程 4.1.1 什么是对象 4.1.2 面向对象编程 4.1.3 面向对象编程:继承 4.1.4 面向对象编程:封装 4.1.5 面向对象编程:多态 4.1.6 基于对象编程 4.2 JavaScript对象的生成 4.2.1 HTML文档...

Global site tag (gtag.js) - Google Analytics