`
chillwarmoon
  • 浏览: 155096 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对于javascript的function的总结

阅读更多

学习知识难免会忘记,关键是在忘记之后,下次遇到时能够通过快捷的方法来回忆,并尽量达到忘记之前的状态。总结也许是日后回忆的一种有效方法,前些日子看了javascript的function,总结如下:

学习function重要的就是明白当程序运行到函数声明的时候,并不执行该函数,当其他函数调用所声明的函数时,该函数才被执行,也就是英文说的function is complied,but not executed until you call it.

再有就是函数在声明时创建变量。例如function(){}就创建了一个变量,虽然这个变量是匿名的。

js 代码
  1. var a=function(){};   
  2.   
  3. var a=function(x,y){}(1,2);   

第一条语句是定义一个匿名function,并将该函数赋给a变量。第二条语句是定义一个匿名function,并调用将该函数的返回结果赋值给a变量。

function add(a,b){};则是定义了一个function,该function的名字是add,相当于一个名为add的变量指向该function。

看看以下代码,感觉挺有意思:

js 代码
  1. function myFunction(){alert("Old");};   
  2.   
  3. var savedFunction=myFunction;   
  4.   
  5. myFunction=function(){alert("New");};   
  6.   
  7. myFunction();   //prints"New"   
  8.   
  9. savedFunction(); //prints"Old"   

在调用myFuction函数的时候,打印出New字符串,代码的第二行明确指出savedFunction=myFunction,但是在调用savedFunction的时候会出现Old字符串,这种情况应该引起java同行的注意,在javascript中,指针指向的是代码片段,执行第二行的时候,savedFucntion指向的是myFuction所指向的代码片段 myFunction code(第一行),然而在第三行myFunction指针由先前的代码片段myFunction code改变为代码片段function(){alert("New")} code的时候,先前的代码片段仍然未消失,被savedFunction所指向,这也就解释了为什么最后程序打印出的字符串仍是Old。

对于Function关键字来说仅在特殊情况下用到,一般就用function,这里就不再介绍了。

prototype属性对于初学js的人来说比较迷惑,这里大致的总结如下:

一般的变量没有prototype属性,constructor function有prototype属性,也就是声明的function(){}变量,js中的每个对象都有一个_proto_和constructor属性,如果一个对象由constructor function生成,例如:

js 代码
  1. function Ball(message){   
  2.   
  3. alert(message);   
  4.   
  5. };   
  6.   
  7. var ball0=new Ball("executing");   

解释以下,最后一行代码等同于:

js 代码
  1. var ball0=new Object();   
  2.   
  3. ball0.construct=Ball;//将属性construct指向代码片段Ball code   
  4.   
  5. ball0.construct("executing"); //执行该代码片段   

接着说,如果一个对象由constructor function生成,则该对象ball0的_proto_属性指向它的构造函数的prototype属性,也就是指向constructor function(这里是前三行代码)所具有的prototype属性,因此凡是用该constructor function生成的对象,都带有该function的prototype属性。

分享到:
评论
3 楼 gatekeeper 2013-01-10  
最后四行代码很有价值
2 楼 wuyan 2007-05-16  
基础知识不能忘
1 楼 sp42 2007-05-05  
对JS function的理解不妨参考下FP(函数式)语言的特点。
“Functional 程序设计的最吸引人注意的地方在于,"函数"现在可以被当作像整数(int)和浮点数(float)一样的数据类型。这就是说,我们可以把函数 func 赋值给一个变量;可以从子程序返回一个函数,就跟返回一个浮点数一样的容易;两个函数可以进行复合运算,就像两个整数可以进行加减乘除运算一样。我们将看到,在 Functional 程序设计里面,"函数"被提升为程序设计语言中的第一等(First Class)的公民,使用"函数"可以像使用整数和浮点数或者是字符串一样的随心所欲;不再象过去,函数只能被调用,没有其它的花样。”
详见:http://jstang.5d6d.com/thread-79-1-1.html

相关推荐

    javascript Function

    ### JavaScript中的Function应用详解 #### 一、基本概念与用法 在JavaScript中,`Function` 是一个内置对象,它允许我们创建动态的函数。它不仅支持传统的函数声明,还能用于构建复杂的对象模型和实现一些高级特性...

    javascript面向对象要点总结

    ### JavaScript面向对象要点总结 在JavaScript中,面向对象编程(OOP)是一种广泛采用的编程范式,它允许开发者创建可重用、模块化的代码。本文将深入探讨JavaScript面向对象的关键概念,包括构造函数、原型链、...

    JavaScript总结笔记

    ### JavaScript总结笔记 #### JavaScript简介 JavaScript是一种广泛使用的、基于对象和事件驱动的脚本语言。它最初由网景公司(Netscape)的布兰登·艾奇于1995年创建,并逐渐成为现代Web开发的核心技术之一。...

    javascript基础知识总结

    以下是对JavaScript基础知识的总结,主要关注在网页中使用的弹出对话框、函数调用以及带有参数的函数。 1) Alert Box `alert()` 函数用于显示一个包含警告信息的单行对话框,用户只能点击“确定”按钮关闭它。在...

    javascript学习总结.doc

    在本文中,我们将深入探讨JavaScript的学习总结,包括其对象、DOM、历史与位置对象、变量、表达式、运算符、数据类型、函数以及对象的扩展。 首先,JavaScript中的对象分为三类:内置对象、DOM对象和自定义对象。...

    javascript学习总结,包含平时积累的例子

    本学习总结主要涵盖JavaScript的基础知识、语法特性、以及一些实用的例子。 1. **基础概念** - JavaScript是解释型语言,由网景公司的Brendan Eich在1995年发明。 - 它主要应用于网页和网络应用,但也可用于...

    javascript Object与Function使用.docx

    然而,在深入学习JavaScript的过程中,不少开发者对于语言内部的一些概念仍感困惑,比如Object与Function之间的关系及其如何影响`instanceof`运算符的结果。 #### 二、JavaScript对象体系结构概述 在JavaScript...

    JavaScript 知识点总结(思维导图10张)

    本文将围绕“JavaScript知识点总结(思维导图10张)”进行详细解析,涵盖从基础语法到高级特性,帮助你构建完整的JavaScript知识体系。 1. **JavaScript操作符与字符** (Javascript-operational-character.gif) - ...

    Javascript学习总结.doc

    JavaScript学习总结 JavaScript是一种解释型的脚本语言,主要应用于Web应用开发,尤其在HTML网页中,它赋予网页动态功能,使得用户体验更加丰富。早期JavaScript主要用于简单的网页特效,如表单验证和浮动广告,但...

    javascript操作DIV总结(弹出窗口篇)

    对于弹出窗口,模态对话框和非模态弹出框的实现主要依赖于CSS和JavaScript的结合使用,浮动窗口则涉及到事件监听和计算元素位置。理解并熟练掌握这些技能,能够帮助开发者创建更具有交互性和用户体验的网页应用。 ...

    javascript学习总结

    JavaScript,作为一种广泛应用于...综上所述,JavaScript的函数是其核心特性之一,深入理解和熟练运用函数对于提升开发效率和编写高质量代码至关重要。在学习过程中,应注重实践,不断探索和掌握各种函数用法和技巧。

    Javascript面向对象编程

    JavaScript使用`function`关键字来定义类。例如: ```javascript function Student(name, age) { this.name = name; this.age = age; } ``` 在这个例子中,`Student`可以被视为一个类,用于创建特定类型的对象。...

    这是JavaScript的总结

    ### JavaScript核心知识点总结 #### 一、JavaScript简介与特点 **标题**:“这是JavaScript的总结” **描述**:这是ACCP5.0 S2阶段关于JavaScript的一些总结,内容包括JavaScript的基础概念及其在网页中的应用。 ...

    html,css,javascript个人自我介绍总结网页.zip

    这份压缩包文件"html,css,javascript个人自我介绍总结网页.zip"显然包含了一个使用这三种技术实现的个人自我介绍网页项目。接下来,我们将深入探讨这三个关键技术及其在网页设计中的应用。 **HTML(HyperText ...

    Javascript 常用代码总结

    ### JavaScript常用代码总结 在日常开发中,JavaScript作为前端开发的核心语言之一,有着广泛的应用场景。下面将根据提供的部分文件内容来归纳总结一些常见的JavaScript代码片段及其应用场景。 #### 1. 操作DOM...

    javascript兼容性总结 转.doc

    总结,JavaScript 兼容性问题主要集中在函数和方法差异、样式访问和设置、事件处理、DOM 操作以及 BOM。解决这些问题通常需要通过条件判断或使用兼容性库如 jQuery,以确保代码在多种浏览器环境下能正常工作。理解并...

    javascript function、指针及内置对象

    对于初学者来说,理解JavaScript中的函数和函数对象,以及如何使用内置对象是非常重要的。这不仅有助于编写清晰和高效代码,还能帮助理解JavaScript中的模块化和事件驱动编程模型。函数的灵活性和动态性允许开发者...

    JAVASCRIPT 面向对象编程精要

    #### 六、总结 本文介绍了JavaScript面向对象编程的基本概念和技术细节,包括变量和对象的基础用法、函数的作用以及如何通过封装和继承来构建复杂的对象层次结构。JavaScript的独特之处在于它的灵活性和动态性,这...

    使用javaScript增强交互效果

    总结,JavaScript为网页带来了无尽的交互可能性。从简单的按钮点击响应到复杂的动画效果和数据处理,它极大地提升了用户体验。北大青鸟的课程旨在帮助学习者掌握这些技能,充分利用JavaScript的力量。通过不断实践和...

Global site tag (gtag.js) - Google Analytics