`
编程足球
  • 浏览: 257018 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

javascript核心 -- function

 
阅读更多
1. 调用
1.1 函数调用
function f(){
     // TODO xxxx   
}

f();// 函数调用


1.2方法调用
var obj = {
    m:function(){
       // TODO xxxx   
    }
}


obj.m();


区别:
函数调用在ECMAScript3和非严格下的ECMAScript5调用的上下文是(this)全局对象,但是在严格模式下调用的上下文是undefined

方法调用上下文 this指向本身

eg

var obj = {
    m:function(){
        var self = this;
        console.log(this === obj); // true
    
        f();
        
        function f(){
            console.log(this === obj);  //false;
            console.log(this);       // this 为undefined 或者为全局上下文对象
            console.log(self === obj); // true
            
        }
        
        return this;
    }
}

obj.m();


2. 传递参数
2.1 少传递   --> 变成undefined
function f(a,b,c){

    console.log(a); // a = 1
    console.log(b); // b = 2
    console.log(c); // c = undefined

}

f(1,2);


2.2 多传递  --> 通过 arguments来获取
function f(a){
    console.log(a);  // 1
    console.log(arguments.length); //2
    console.log(arguments[0]);  //1 == a
    console.log(arguments[1]);  //2 == 第二个参数
    console.log(arguments[2]);  //undefined
}

f(1,2);

 

注: arguments 并不是数组,只是碰巧用数字做索引,以及一个length属性


2.3. arguments的两个属性callee 与 caller

在非严格模式下,callee 指:当前正在执行的函数
caller 指:调用当前正在执行的函数的函数
var f = function(x){
    if(x <=1){
        return 1;
    }
    return x*arguments.callee(x-1);
}
f(5);  // 进行递归调用 120


3. 做值的函数
function square(x){
    return x*x;
}
var s = square;
square(4);//16
s(5); //25

/** 
* a[0]: 是一个function
* a[1]: 20
*/
var a = [function square(x){return x*x;},20];
a[0](a[1]); //400

//操作数,function作为参数传递
function add(x,y){
    return x+y;
}
function operate(operator,operand1,operand2){
    return operator(operand1,operand2);
}

operate(add,1,2);
分享到:
评论

相关推荐

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

    这个库的核心在于利用浏览器的DOM Mutation Observers或旧版的Mutation Events来监听元素的尺寸变化。Mutation Observers是现代浏览器中推荐的方法,它比Mutation Events更加高效且不会阻塞页面渲染。当元素的属性...

    JavaScript教程--从入门到精通

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

    JavaScript教程-ppt版-31页

    JavaScript作为Web前端开发的核心技术之一,具有强大的功能和广泛的用途。通过掌握上述知识点,你可以开始编写基本的JavaScript程序,并逐渐深入学习更高级的功能和技术。随着实践经验的积累,你将能够创建更加复杂...

    悟透JavaScript--《JavaScript真经》

    function在JavaScript中既是数据类型,也是代码的体现,它用于定义可执行的函数块。函数是JavaScript的核心,它们可以作为值传递,也可以作为对象的属性,体现了JavaScript的灵活性和动态性。 总之,《JavaScript...

    JavaScript-Canvas-to-Blob-master

    1. `src/`:源代码目录,通常包含JavaScript文件,如`canvas-to-blob.js`,这是核心库文件。 2. `dist/`:发布目录,包含经过压缩和优化的版本,适合在生产环境中使用。 3. `demo/`:示例或测试页面,帮助开发者了解...

    前端项目-function-plot.zip

    下面我们将深入探讨function-plot的核心特性和使用方法。 1. **d3.js基础** d3.js(Data-Driven Documents)是JavaScript的一个库,专门用于数据驱动的文档操作。它允许开发者用数据绑定HTML、SVG和CSS元素,进而...

    JavaScript核心技术.pdf 高清下载

    根据提供的信息,我们可以推断这份文档《JavaScript核心技术.pdf》主要关注的是JavaScript这门编程语言的核心技术和高级用法。尽管给出的部分内容与Java有关,并且反复提及了一个Java学习网站的链接,但考虑到标题、...

    JavaScript函数-深入解析与使用指南(很详细)

    - 闭包是JavaScript的一个核心概念,它允许函数访问其外部词法环境中的变量,即使在函数被外部环境调用时也是如此。 - 这种机制使得函数能够“记住”创建时的环境。 ```javascript function createCounter() { ...

    JavaScript课件-04.pptx

    在JavaScript中,函数和对象是两个核心概念,它们是编写高效代码的基础。 **函数**是JavaScript中可重用的代码块,可以接受参数并返回结果。定义函数有三种方式: 1. **函数声明**: ```javascript function ...

    JavaScript - Fetch.js、JavaScript - jQuery、JavaScript - XHR.js.zip

    在`JavaScript - Fetch.js`中,你可能会看到以下核心代码: ```javascript fetch('https://api.example.com/sms/send', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON....

    前端开源库-unexpected-function-equality

    "unexpected-function-equality" 库的核心理念是将函数转换成可读性强的字符串表示,这通常涉及到函数体的源码和变量环境的分析。在实际应用中,这可以用于测试框架,确保预期的函数与实际执行的函数一致,或者在...

    Javascript教程--从入门到精通[完整版]

    事件处理是JavaScript在网页交互中的核心。通过addEventListener或attachEvent监听用户行为,如点击、滚动、提交表单等,从而实现动态效果。 DOM(文档对象模型)是JavaScript操作HTML和XML文档的主要接口。通过DOM...

    即用即查JAVASCRIPT核心对象参考手册

    ### 即用即查JAVASCRIPT核心对象参考手册知识点详解 #### 一、引言 JavaScript 是一种广泛应用于网页开发中的脚本语言,它能够为网页添加动态效果,提高用户体验。JavaScript 的核心对象是其功能强大的基石之一,...

    可扩展的Javascript架构-中文版

    ### 可扩展的JavaScript架构详解 #### 一、引言 在《可扩展的JavaScript架构》这份由雅虎资深工程师分享的PPT中,我们能够深入了解到如何通过一种全新的视角来构建灵活且易于维护的Web应用程序。该PPT虽然篇幅不长...

    Javascript-function-for-future-use

    "Javascript-function-for-future-use"这个标题暗示了我们可能在讨论如何编写和储存函数,以便在未来不同的项目或场景中重用它们。这样的做法可以提高代码的可维护性和复用性,减少重复工作,同时提升开发效率。 ...

    cascade-function-.rar_cascade

    总之,"cascade-function-.rar_cascade" 文件包提供了一个基于Java脚本的省市级联功能实现,利用Dreamweaver作为开发工具,结合前端JavaScript和后端Java服务,实现用户友好且高效的地址选择功能。通过理解这种功能...

    JavaScript-JavaScript语法集锦

    ### JavaScript 语法集锦知识点详解 #### 一、概述 ...以上是 JavaScript 语法集锦中的一些核心知识点,通过这些知识的学习,可以帮助开发者更深入地理解 JavaScript 的各种功能,并灵活运用到实际项目中。

    前端开源库-rehype-minify-javascript-script

    rehype-minify-javascript-script的核心功能在于,它可以对HTML文档中的JavaScript代码进行压缩,以减小文件大小,提高页面加载速度。它采用了诸如删除不必要的空白、注释、以及对变量和函数名进行混淆等常见压缩...

    artech-javascript-jquery-10

    在IT领域,JavaScript作为一种强大的脚本语言,广泛应用于网页开发,而jQuery则是JavaScript的一个库,它极大地简化了JavaScript的使用,提升了开发效率。这个资料包"artech-javascript-jquery-10"显然是关于jQuery...

Global site tag (gtag.js) - Google Analytics