《JavaScript应用程序设计》一一第2章 函数

第2章

函数
函数是构建应用程序的最小功能单元,它们在JavaScript中尤为重要。函数作为JavaScript中的“一等公民”,既可以作为对象使用,也可以在程序运行时动态声明。这些与其他语言截然不同的函数特性正是JavaScript所独有的,为了能够在应用中最大程度发挥这些特性的优势,你需要对JavaScript函数的工作机理做全面深入的了解,相信在读完本章后,你将会以一个全新的视角去看待函数。
下面介绍一些编写函数时需遵循的最佳实践:
不要重复造轮子
优秀的程序员向来是懒惰与效率的结合体,他们能用极少的代码量实现应用的大部分功能。当你在编码中发现了逻辑重复的代码块时,将它们封装为函数、对象、模块,如此一来它们会更容易被复用。
这样做带来的另外一个好处是,由于逻辑仅在一处维护,所以在功能出现问题时很快就能够定位修复。
为了让函数具备复用性,你必须时刻思考如何将解决问题的模式与问题本身隔离开,这有助于你将逻辑相关的代码块更好地组织在一起。
一次只做一件事情
每个函数应当仅专注于一个任务,并且仅对一个功能点负责。遵循DOT原则可以提升代码的复用性、易读性与可调试性。
保持简单
程序员们总是喜欢用一些技巧来解决问题,这本身不是一件坏事,不过不少程序员会想当然的认为这种高深晦涩的代码是解决问题的最佳方案,他们往往会在一行代码中安排多个原子性任务。
少即是多
一般来说,为了让代码更为易读,同时避免一次执行多个任务,函数的内容应该尽可能的精简,而不是贪多,代码量做到能够独立完成一个功能点即可。如果你发现某个函数背负的任务越来越多,可以考虑将其拆解为几个独立的子函数与对象。

时间: 2024-09-21 23:06:08

《JavaScript应用程序设计》一一第2章 函数的相关文章

关于《javascript 高级程序设计》里“稳妥构造函数模式“的一点疑问

问题描述 关于<javascript 高级程序设计>里"稳妥构造函数模式"的一点疑问 在<javascript 高级程序设计>第六章6.2.7提到"稳妥构造函数模式"的稳妥对象,指的是没有公共属性,而且其方法也不引用this 的对象,最适合在一些安全的环境中(这些环境中会禁止使用this 和new),或者在防止数据被其他应用程序(如Mashup程序)改动时使用.书中举例如下: function Person(name, age, job){

《JavaScript应用程序设计》一一第3章 对象

第3章 对象JavaScript拥有原型继承.动态对象扩展.闭包等特性,在现今市面上流行的所有编程语言中,基于对象编程的JavaScript最具灵活性与表现力.在JavaScript中,你可以将诸如函数.数组.键/值对以及一些基础数据结构都视为对象,甚至一些原始数据类型在用点语法做属性操作时,也会被JavaScript隐式当作对象处理.为了能够调用原型链上的方法,原始数据类型在使用时会被临时包裹为对象,例如:'tonya@example.com'.split('@')[1]; // => exa

JavaScript高级程序设计(第3版)学习笔记9 js函数(下)_基础知识

再接着看函数--具有魔幻色彩的对象. 9.作为值的函数 在一般的编程语言中,如果要将函数作为值来使用,需要使用类似函数指针或者代理的方式来实现,但是在ECMAScript中,函数是一种对象,拥有一般对象具有的所有特征,除了函数可以有自己的属性和方法外,还可以做为一个引用类型的值去使用,实际上我们前面的例子中已经有过将函数作为一个对象属性的值,又比如函数也可以作为另一个函数的参数或者返回值,异步处理中的回调函数就是一个典型的用法. 复制代码 代码如下: var name = 'linjisong'

JavaScript高级程序设计(第3版)学习笔记7 js函数(上)_基础知识

变量类型 在说函数之前,先来说说变量类型. 1.变量:变量在本质上就是命名的内存空间. 2.变量的数据类型:就是指变量可以存储的值的数据类型,比如Number类型.Boolean类型.Object类型等,在ECMAScript中,变量的数据类型是动态的,可以在运行时改变变量的数据类型. 3.变量类型:是指变量本身的类型,在ECMAScript中,变量类型就只有两种:值类型和引用类型.当变量的数据类型是简单数据类型时,变量类型就是值类型,当变量的数据类型是对象类型时,变量类型就是引用类型.在不引起

JavaScript高级程序设计(第三版)学习笔记6、7章_javascript技巧

第6章面向对象的程序设计 对象 1.数据属性 configurable表示能否通过delete删除属性从而重新定义属性能否修改属性的特性或能否把属性修改为访问器属性默认为true enumerbale表示能否通过for-in访问属性默认true writable表示能否修改属性值默认true value数据存储位置默认undefined 修改默认属性特性Object.defineProperty()接收三个参数属性所在对象属性名描述符对象描述符对象属性必须是configurable.enumer

JavaScript高级程序设计(第3版)学习笔记8 js函数(中)_基础知识

6.执行环境和作用域 (1)执行环境(execution context):所有的JavaScript代码都运行在一个执行环境中,当控制权转移至JavaScript的可执行代码时,就进入了一个执行环境.活动的执行环境从逻辑上形成了一个栈,全局执行环境永远是这个栈的栈底元素,栈顶元素就是当前正在运行的执行环境.每一个函数都有自己的执行环境,当执行流进入一个函数时,会将这个函数的执行环境压入栈顶,函数执行完之后再将这个执行环境弹出,控制权返回给之前的执行环境. (2)变量对象(variable ob

《JavaScript应用程序设计》一一2.19 小结

2.19 小结 我希望现在你能以一个全新的视角来看待函数,我可以将本书中的所有例子用函数式编程来改写,但前提是你要熟练掌握lambda与闭包机制.如果你想对JavaScript函数式编程继续深入了解,可以拜读Reginald Braithwaite的<JavaScript Allongé: A Strong Cup of Functions, Objects, Combinators, and Decorators>一书(https://leanpub.com/javascript-allon

c++-我现在该学什么?window程序设计啃到第九章,想学MFC但是已经过时了,C++的路下面该怎么走

问题描述 我现在该学什么?window程序设计啃到第九章,想学MFC但是已经过时了,C++的路下面该怎么走 我是自修计算机,连本科文凭都是家里蹲自考的,主修C++,现在不知道该学什么了,<window程序设计>只啃到第九章,啃不下去了,太多的API函数,在啃下去也是浪费时间,最多就是熟悉些API的运用....然后啃<深入浅出MFC>今天啃到第三篇有卡住了,也不想在MFC上浪费太多时间.....我下面该学什么.....完全没有方向呀,C++的路下面该怎么走...... 解决方案 AP

《JavaScript高级程序设计》学习笔记

系统学习JS, 从<JavaScript高级程序设计>入门,通过学习jQuery或者angularJS源码来进阶. 第1章 JavaScript简介 1.JS问世的目的是处理以前由服务器端语言(如Perl)负责的一些输入验证操作, 由Netscape主导开发,那时候微软的IE还不能独领风骚.最初叫做LiveScript,当时媒体热炒Java,于是改名为JavaScript. JavaScript和ECMAScript通常指同一门语言,但是,JavaScript是ECMA-262标准的实现和扩展