`
lingbing777
  • 浏览: 11447 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

js学习-function

 
阅读更多
js function注意点
没有重载,申明两个同名的函数,后者会覆盖前面的

函数声明与函数表达式,解析器在向执行环境加载数据时,对函数声明和函数表达式并非一视同仁,解析器会率先读取函数声明,在执行代码前可用,函数表达式必须等到执行到它的代码行,才回真正被解释执行


正确执行
alert(sum(10,10));  //20
function sum(num1,num2)
{
  return num1+num2;
}




执行报错
alert(sum(10,10));
var sum=function(num1,num2)
{
   return num1+num2;
}


function函数可做为值传递

函数内部属性 arguments 和this

arguments 主要用途是保存函数参数,arguments有callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数

function factorial(num){
  if(num<=1)
  {
  return 1;
  }else {
   return num*factorial(num-1);
  }
}
可以使用arguments.callee

function factorial(num)
{
   if(num<=1)
   {
     return 1;
   }else
   {
     return num* arguments.callee(num-1);
  }
}



函数属性和方法
每个函数都有啷个属性 length 和prototype,length属性是表示函数希望接受的命名参数的个数。
每个函数都包含两个非继承而来的方法,apply() 和call()


apply() 接受两个参数 运行函数的作用域 和参数数组

function sum(num1 ,num2){
   return num1+num2;
}

function callSum1(num1,num2)
{
  return sum.apply(this,arguments)   //传入argumets对象
}

function callSum2(num1,num2){
   return sum.apply(this,[num1,num2]);
}

alert(callSum1(10,10));  //20
alert(callSum2(10,10));  //20


call()方法和apply()方法作用相同call()第一个参数一样,其他参数要逐个列出来

function sum(num1,num2)
{
   return num1+num2;
}
function callSum(num1,num2)
{
   return sum.call(this,num1,num2);
}
alert(callSum(10,10))//20

call()方法和apply()方法真正用的用武之地,他们是可以扩充函数赖以运行的作用域
window.color = "red"
var o={color:"blue"};
functin sayColor()
{
  alert(this.color);
}

sayColor();    //red

syaColor(this);  //red
syaColor(window);  //red
syaColor(o)       //blue


ECMAscript 5还定义了一个方法:bind();这个方法会创建一个函数的实例,其this值会绑定传个bind()函数的值

window.color ="red";

var o ={color:"blue"}
function sayColor()
{
   alert(this.color);
}
var objectSaycolor =sayColor.bind(o);
objectSayColor()   //blue
分享到:
评论

相关推荐

    JavaScript 学习 - 提高篇

    JavaScript 学习 - 提高篇 在本节课程中,我们将深入探讨 JavaScript 中的对象、函数、constructor 函数等高级概念。 JavaScript 中的对象 在 JavaScript 中,对象是一组数据的键值集合,类似于 Java 中的 ...

    前端项目-function-plot.zip

    function-plot是建立在d3.js之上的,因此了解d3的基本概念和API是使用function-plot的前提。 2. **function-plot安装与引入** 要在项目中使用function-plot,首先需要通过npm或CDN引入。对于npm用户,可以运行`npm...

    3------通过实例学习------Ext.js------.docx

    Ext.js 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。通过实例学习Ext.js,我们可以深入了解其核心组件、布局管理、数据绑定以及用户界面构建等关键知识点。 首先,让我们看一下解压后的Ext.js...

    javascript----一个Tab的JS

    总的来说,学习并实现这个“javascript----一个Tab的JS”的实例,将有助于初学者理解JavaScript在实际网页开发中的应用,提升其DOM操作、事件处理和状态管理的能力。同时,这也是一个锻炼问题解决和代码组织的良好...

    Javascript图片文字识别插件JS-OCR.zip

    JavaScript图片文字识别插件JS-OCR是一个用于在前端实现OCR(Optical Character Recognition,光学字符识别)功能的工具。OCR技术允许程序从图像中提取文本,使得计算机能够识别和处理图像中的文字。在这个JS-OCR...

    前端项目-javascript-detect-element-resize.zip

    1. 引入库:首先,你需要将`javascript-detect-element-resize.js`文件引入到你的HTML文档中,或者通过模块系统(如CommonJS或ES6模块)来导入。 2. 创建实例:然后,你可以创建一个新的检测器实例,传入要监听的...

    JS-Function-2019-5-24-8-38-13-536

    在本"JS-Function-2019-5-24-8-38-13-536"的练习中,你将深入理解和掌握JavaScript函数的各种概念和技巧。这个练习分为多个小任务,每个任务都有自己的readme文件,提供了详细的说明和指导。 首先,让我们了解一下...

    example-function-nativescript:示例函数NATIVESCRIPT

    "example-function-nativescript"项目显然是一个关于Nativescript的示例集,它包含了一些示例函数,帮助开发者理解和学习如何在Nativescript环境中编写和使用功能函数。这些示例可能涵盖了各种场景,如数据处理、...

    Javascript学习笔记-学JS的一手教程

    JavaScript学习笔记 JavaScript是一种强大的、跨平台的编程语言,主要用于为网页和应用程序添加交互性。在Web开发中,JavaScript与HTML和CSS一起构成了基础的三驾马车。本教程将帮助初学者理解JavaScript的核心概念...

    JavaScript学习基础学习心得

    ### JavaScript 学习基础心得 在深入探讨JavaScript的基础深度原理之前,我们首先了解JavaScript的一些基本概念,这将有助于我们更好地理解和应用这些高级知识点。 #### 浏览器组成 浏览器是JavaScript运行的重要...

    js-xlsx使用demo

    JS-XLSX是一个强大的JavaScript库,用于处理Excel文件,特别是数据的导入和导出。它基于XML结构解析和生成Excel文档,支持多种格式,包括XLSX、XLSM、XLSB等。在本教程中,我们将深入探讨如何使用JS-XLSX库将HTML...

    undefined-is-not-a-function:最初用于 Nodevember 2014 的演示文稿

    **压缩包子文件 "undefined-is-not-a-function-gh-pages":** 这个文件名暗示了这个演示文稿可能托管在 GitHub Pages 上,"gh-pages" 是 GitHub 提供的一个服务,允许用户将仓库的某个分支作为静态网站发布。这个...

    super-simple-netlify-function-example

    总的来说,这个“super-simple-netlify-function-example”项目将带你入门Netlify函数的使用,通过一个简洁的JavaScript代码示例,展示如何构建和部署一个无服务器的边缘函数。对于希望扩展静态站点功能或学习无...

    Node.js-Node-RED用于连接物联网的可视化工具

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地扩展了 JavaScript 的应用场景。而 Node-RED 是一款基于 Node.js 的开源工具,专为简化物联网...

    JavaScript教程--从入门到精通

    本教程将全面深入地介绍JavaScript的核心概念和技术,帮助学习者从零基础逐渐达到精通的程度。 首先,JavaScript的基础部分包括语法、变量、数据类型、操作符和流程控制。语法是学习任何编程语言的起点,JavaScript...

    Javascript 学习实例- 字幕展现

    在这个“JavaScript学习实例-字幕展现”中,我们将深入探讨如何利用JavaScript来实现字幕的动态显示,这在视频播放、在线教育等领域具有广泛应用。 首先,字幕文件通常以SRT或VTT格式存在,其中包含了时间戳和对应...

    prototype.js 1.4-1.6[全]

    学习Prototype.js不仅能够提升JavaScript编程的效率,还能深入理解JavaScript的原型机制,这对于从事前端开发的工程师来说是必不可少的知识。通过这个压缩包,我们可以研究每个版本的变化,理解其设计理念,为自己的...

    js中function函数的使用方法.docx

    通过本文的学习,我们深入了解了JavaScript中`function`的多种使用方式及其应用场景。无论是基础的函数声明、构造器、闭包还是处理动态代码,掌握这些技巧都将极大地提升我们的编程能力。希望这些知识点能帮助你在...

    JavaScript案例-js伸缩二级菜单

    在这个“JavaScript案例-js伸缩二级菜单”的主题中,我们将深入探讨如何使用JavaScript来创建一个响应式的二级菜单,这在网页设计中非常常见,能够提升用户体验。 首先,我们需要理解HTML结构。二级菜单通常由一个...

Global site tag (gtag.js) - Google Analytics