`

JavaScript面向对象

 
阅读更多

由于js语言本身语法的灵活性,使得在js程序中出现了各种各样的代码风格,但也因为如此,导致了代码的可读性和可维护性大大降低,特别随着项目的不断更新,js代码的不断更新,到后期时甚至连自己的代码都不知然了,因此确定一种好的代码风格是很有必要的。


近些年随着ajax的兴起,js变得越来越受重视,js开始在web开发中充当非常重要的角色,因此也开始遇到了各种各样的问题,于是很多大牛就提出了js的面向对象编程方法。


JavaScript是一种基于原型(prototype)的面向对象的语言,它没有类的概念,所有的一切都派生自现有对象的一个副本。


一、下面看我画的总结图:

二、难点解析


1、this的概念

this管家你在引用的是包含它的函数作为某个对象的方法被调用时的那个对象。 下面看下面一个小例子:


根据this的定义我们知道,上例中的this代表的是超链接。


2、构造函数的创建

Function是创建构造函数的起点。我们在之前学习C#的时候就已经学过,在创建函数实例的时候,我们也能创建构造函数。在js中也一样,例如编写代码:

var myObject=new myConstructor();

此时,myConstructor函数也可以作为构造函数。当对象被实例之后,构造函数会执行包含的代码。


3、闭包

闭包其实非常好理解,它的含义就类似于我们所学习的全局变量和局部变量。闭包是将函数内部和函数外部连接起来的一座桥梁。


下面看一个例子,详见注释:



闭包的作用:一是可以读取函数内部的变量,另一个是让这些变量的值始终保持在内存中。怎样理解这句话呢?下面再来看一段代码:


在这段代码中,result实际上就是闭包funTwo函数。它一共运行了两次,第一次的值是999,第二次的值是1000。这证明了funOne中的局部变量n一直保存在内存中,并没有在funOne调用后被自动清除。


为什么会这样呢?因为funOne是funTwo的父函数,而funTwo被赋给了一个全局变量,这导致funTwo始终在内存中,而funTwo的存在依赖于funOne,因此funOne也始终在内存中,不会在调用结束后,被垃圾回收机制——garbage collection回收。


“nAdd=function(){n+=1}”一行代码中,首先在nAdd前面没有使用var关键字,因此nAdd是一个全局变量,而不是局部变量。其次,nAdd的值是一个匿名函数——anonmous function,而这个匿名函数本身也是一个闭包,所以nAdd相当于一个setter,可以在函数外部对函数内部的局部变量进行操作。


三、总结

js面向对象部分的总结就到这里了。很多地方,本人理解的也不是很到位,希望您提出宝贵意见。本博客之前,推出过关于js面向对象的小例子,如果有兴趣的话,您可以自行查看。

分享到:
评论

相关推荐

    Javascript面向对象编程.

    在提供的资源中,《代码之美》PDF文件可能包含了关于编程实践和代码风格的指导,而《Javascript面向对象编程》PPT可能更具体地阐述了JavaScript OOP的细节和示例。学习这些材料将有助于深入理解JavaScript的面向对象...

    JavaScript面向对象编程指南.pdf

    JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在... 《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库

    JavaScript面向对象编程指南

    《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码...

    JavaScript面向对象编程指南(第2版).rar

    JavaScript是一种广泛...通过深入学习这本《JavaScript面向对象编程指南(第2版)》,开发者不仅能掌握JavaScript的面向对象编程基础,还能了解到实际项目中如何有效地运用这些知识,提升编程技巧和解决问题的能力。

    JAVASCRIPT 面向对象编程精要

    ### JavaScript面向对象编程精要 #### 一、引言 JavaScript是一种灵活且强大的脚本语言,它虽然起源于一种简单的浏览器脚本语言,但随着时间的发展,JavaScript已经成为了一种功能全面的编程语言,尤其是在Web开发...

    javascript面向对象

    ### JavaScript面向对象编程详解 #### 引言 在软件工程领域,面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件。每个对象都可以包含数据(属性)和方法(行为)。JavaScript虽然起初并非为面向对象...

    javascript面向对象编程.pdf

    总而言之,学习现代JavaScript面向对象编程,有助于开发者在认识这门语言演化的基础上,运用面向对象的设计和编程模式来构建更加健壮和可维护的JavaScript应用程序。同时,测试和调试是保证代码质量不可或缺的环节,...

    JavaScript面向对象精要(英文版)

    ### JavaScript面向对象精要 #### 一、概述 《JavaScript面向对象精要》是一本深入讲解JavaScript面向对象编程原理的专业书籍。本书由知名的前端开发者Nicholas C. Zakas撰写,全面介绍了JavaScript作为一种动态...

    Javascript面向对象编程

    ### JavaScript面向对象编程详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发领域占据着举足轻重的地位。尽管JavaScript本质上是一种基于原型的语言,但它也支持面向对象编程的一些特性,使得...

    JavaScript面向对象编程指南 pdf

    下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **类与对象** - 在JavaScript中,对象是键值对的集合,可以通过字面量语法或构造函数创建。例如: ```javascript const person = { ...

    javascript面向对象编程指南 2nd

    javascript面向对象编程指南 2nd英文版,英文名:Object-Oriented JavaScript。 What you will learn from this book The basics of object-oriented programming, and how to apply it in the JavaScript ...

    javascript面向对象编程(中文).pdf

    ### JavaScript面向对象编程知识点概述 #### 一、现代JavaScript编程概览 - **JavaScript的演进**:自诞生以来,JavaScript经历了从一个简单的脚本语言到现今被广泛应用于构建复杂应用的强大编程语言的过程。它的...

    JavaScript面向对象编程指南完整版

    JavaScript面向对象编程指南是完整的扫描版...

    JavaScript面向对象编程.pdf

    JavaScript面向对象编程.pdf

Global site tag (gtag.js) - Google Analytics