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 中的对象、函数、constructor 函数等高级概念。 JavaScript 中的对象 在 JavaScript 中,对象是一组数据的键值集合,类似于 Java 中的 ...
function-plot是建立在d3.js之上的,因此了解d3的基本概念和API是使用function-plot的前提。 2. **function-plot安装与引入** 要在项目中使用function-plot,首先需要通过npm或CDN引入。对于npm用户,可以运行`npm...
Ext.js 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。通过实例学习Ext.js,我们可以深入了解其核心组件、布局管理、数据绑定以及用户界面构建等关键知识点。 首先,让我们看一下解压后的Ext.js...
总的来说,学习并实现这个“javascript----一个Tab的JS”的实例,将有助于初学者理解JavaScript在实际网页开发中的应用,提升其DOM操作、事件处理和状态管理的能力。同时,这也是一个锻炼问题解决和代码组织的良好...
JavaScript图片文字识别插件JS-OCR是一个用于在前端实现OCR(Optical Character Recognition,光学字符识别)功能的工具。OCR技术允许程序从图像中提取文本,使得计算机能够识别和处理图像中的文字。在这个JS-OCR...
1. 引入库:首先,你需要将`javascript-detect-element-resize.js`文件引入到你的HTML文档中,或者通过模块系统(如CommonJS或ES6模块)来导入。 2. 创建实例:然后,你可以创建一个新的检测器实例,传入要监听的...
在本"JS-Function-2019-5-24-8-38-13-536"的练习中,你将深入理解和掌握JavaScript函数的各种概念和技巧。这个练习分为多个小任务,每个任务都有自己的readme文件,提供了详细的说明和指导。 首先,让我们了解一下...
"example-function-nativescript"项目显然是一个关于Nativescript的示例集,它包含了一些示例函数,帮助开发者理解和学习如何在Nativescript环境中编写和使用功能函数。这些示例可能涵盖了各种场景,如数据处理、...
JavaScript学习笔记 JavaScript是一种强大的、跨平台的编程语言,主要用于为网页和应用程序添加交互性。在Web开发中,JavaScript与HTML和CSS一起构成了基础的三驾马车。本教程将帮助初学者理解JavaScript的核心概念...
### JavaScript 学习基础心得 在深入探讨JavaScript的基础深度原理之前,我们首先了解JavaScript的一些基本概念,这将有助于我们更好地理解和应用这些高级知识点。 #### 浏览器组成 浏览器是JavaScript运行的重要...
JS-XLSX是一个强大的JavaScript库,用于处理Excel文件,特别是数据的导入和导出。它基于XML结构解析和生成Excel文档,支持多种格式,包括XLSX、XLSM、XLSB等。在本教程中,我们将深入探讨如何使用JS-XLSX库将HTML...
**压缩包子文件 "undefined-is-not-a-function-gh-pages":** 这个文件名暗示了这个演示文稿可能托管在 GitHub Pages 上,"gh-pages" 是 GitHub 提供的一个服务,允许用户将仓库的某个分支作为静态网站发布。这个...
总的来说,这个“super-simple-netlify-function-example”项目将带你入门Netlify函数的使用,通过一个简洁的JavaScript代码示例,展示如何构建和部署一个无服务器的边缘函数。对于希望扩展静态站点功能或学习无...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地扩展了 JavaScript 的应用场景。而 Node-RED 是一款基于 Node.js 的开源工具,专为简化物联网...
本教程将全面深入地介绍JavaScript的核心概念和技术,帮助学习者从零基础逐渐达到精通的程度。 首先,JavaScript的基础部分包括语法、变量、数据类型、操作符和流程控制。语法是学习任何编程语言的起点,JavaScript...
在这个“JavaScript学习实例-字幕展现”中,我们将深入探讨如何利用JavaScript来实现字幕的动态显示,这在视频播放、在线教育等领域具有广泛应用。 首先,字幕文件通常以SRT或VTT格式存在,其中包含了时间戳和对应...
学习Prototype.js不仅能够提升JavaScript编程的效率,还能深入理解JavaScript的原型机制,这对于从事前端开发的工程师来说是必不可少的知识。通过这个压缩包,我们可以研究每个版本的变化,理解其设计理念,为自己的...
通过本文的学习,我们深入了解了JavaScript中`function`的多种使用方式及其应用场景。无论是基础的函数声明、构造器、闭包还是处理动态代码,掌握这些技巧都将极大地提升我们的编程能力。希望这些知识点能帮助你在...
在这个“JavaScript案例-js伸缩二级菜单”的主题中,我们将深入探讨如何使用JavaScript来创建一个响应式的二级菜单,这在网页设计中非常常见,能够提升用户体验。 首先,我们需要理解HTML结构。二级菜单通常由一个...