`
alanwu
  • 浏览: 200634 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《javascript权威指南第五版》函数/方法

阅读更多
javascript权威指南第五版 函数
一个函数是可以被不断调用,运行的JavaScript代码块。
一个被对象调用的函数成为方法

定义和调用函数
一个函数有:函数名,一个或多个参数名和用大括号组织起来的语句

定义函数的例子:
//返回undefined
function print(msg) {
    document.write(msg, "<br>");
}

// 计算并返回
function distance(x1, y1, x2, y2) {
    var dx = x2 - x1;
    var dy = y2 - y1;
    return Math.sqrt(dx*dx + dy*dy);
}

// 递归
function factorial(x) {
    if (x <= 1)
        return 1;
    return x * factorial(x-1);
}

当函数定义后,可以用()操作符来调用
print("The probability of that is: " + factorial(5)/factorial(13));

8.1.1 内函数
Javascript可以内置函数
function hypotenuse(a, b) {
    function square(x) { return x*x; }
    return Math.sqrt(square(a) + square(b));
}


因为函数和类一样都是一等公民,Scala也允许有内函数

8.1.2 Function Literals
Javascript允许函数定义为:function literals.
function f(x) { return x*x; }              // function statement
var f = function(x) { return x*x; };       // function literal


同样Scala也有这个特性

8.2 函数参数
Javscript可以把函数当成参数进行传递。因为函数是松类型(loosely typed),所以可以传递任何类型的参数值给任何函数。

可选参数
如果传入的参数数量少于需要的数量,那么剩下的参数值都为undefined
如:定义函数拷贝,如果参数a没有传入那么创建一个空数组
function copyPropertyNamesToArray(o, /* optional */ a) {
    if (!a) a = [];  // If undefined or null, use a blank array
    for(var property in o) a.push(property);
    return a;
}


调用该函数:
var a = copyPropertyNamesToArray(o); // 将o的值拷贝给新的数组
copyPropertyNamesToArray(p,a);       // 将p的值拷贝给数组a


8.2.2 可变参数列表:参数对象
Javascript可以侦测函数传入参数的数量
function f(x, y, z)
{
    // 访问arguments对象判断读入的参数长度
    if (arguments.length != 3) {
        throw new Error("function f called with " + arguments.length +
                        "arguments, but it expects 3 arguments.");
    }
    // Now do the actual function...
}


Javascript把传入的参数都放在可变的对象arguments中,因此可以传入不定长的参数列表
function max(/* ... */)
{
    var m = Number.NEGATIVE_INFINITY;
    // 循环便利参数 
 looking for, and
    // 记录最大的值
    for(var i = 0; i < arguments.length; i++)
        if (arguments[i] > m) m = arguments[i];
    // 返回最大值
    return m;
}

var largest = max(1, 10, 100, 2, 3, 1000, 4, 5, 10000, 6);



Javascript不是强类型定义,如果需要确定的类型参数,可以使用类似的判断:

if ((a instanceof Array) ||                         // if array
        (a && typeof a == "object" && "length" in a)) { // or array like
}


8.3 函数作为数值
Javascript中可以将函数当作数在传递,存储和使用
比如定义一个函数:
function square(x) { return x*x; }

然后可以:
var a = square(4);  // a存了16
var b = square;     // b存储了square这个方法!
var c = b(5);       // c存了25


8.4 函数作为方法
当函数在对象中被调用的时候成为方法
var calculator = {  // 定义一个对象
    operand1: 1,
    operand2: 1,
    compute: function() {
        this.result = this.operand1 + this.operand2;
    }
};
calculator.compute();       // 调用方法compute()
print(calculator.result);   // 打印结果



8.6.4 ECMAScript有两个特殊的方法call()和apply()
假设有对象o和函数f
f.call(o, 1, 2);

就等同于
o.m = f;
o.m(1,2);
delete o.m;


appy()和call很类似,只是要用数组传值
f.apply(o, [1,2]);


分享到:
评论

相关推荐

    javascript权威指南第五版(英文原版)

    《JavaScript权威指南第五版》是JavaScript编程领域内一本广受赞誉的经典著作,通常被称为“犀牛书”。这本书的英文原版提供了对JavaScript语言最原始、最深入的理解,帮助读者掌握其核心概念,以及作者David ...

    Javascript 权威指南 第五版

    《JavaScript 权威指南》第五版是一本深受程序员喜爱的经典著作,由David Flanagan撰写,是深入理解JavaScript语言的重要参考资料。这本书旨在为开发者提供全面、准确且深入的JavaScript知识,帮助他们有效地利用这...

    javascript权威指南第五版(PDF)

    通过阅读《JavaScript权威指南》第五版,读者不仅能掌握JavaScript的基本语法,还能深入了解其高级特性和现代开发的最佳实践。无论是初学者还是经验丰富的开发者,都能从中受益匪浅,提升自己的JavaScript编程技能。

    JavaScript权威指南第五版源码

    JavaScript权威指南第五版的源码是一份极其宝贵的资源,它为深入理解和实践JavaScript语言提供了丰富的素材。这本书由David Flanagan撰写,是JavaScript开发者必备的经典参考书籍之一。源码的提供使得读者可以更直观...

    javascript权威指南第五版(chm格式)

    《JavaScript权威指南第五版》是JavaScript编程领域的一本经典之作,深入浅出地阐述了JavaScript的核心概念和技术。这本书不仅适合初学者入门,也对有经验的开发者提供了宝贵的参考资料。CHM(Compiled Help Manual...

    JavaScript权威指南(第5版)PDF版本下载.txt

    第五版于2016年发布,由David Flanagan编写,是一本全面介绍JavaScript语言特性的书籍。本书不仅适合初学者作为学习JavaScript的基础教材,也适合有一定经验的开发者用来深入了解这门语言。 ### 二、书籍内容概览 ...

    第五版javascript权威指南

    《第五版JavaScript权威指南》作为一本深入解析JavaScript的专著,为开发者提供了全面、深入且权威的指导。书中不仅涵盖了语言的基础概念,还涉及了高级特性和最佳实践,旨在帮助读者成为JavaScript的专家。 1. **...

    JavaScript 权威指南(第五版)源码

    《JavaScript权威指南》第五版的源码可能包括函数定义、对象创建、事件处理、DOM操作、AJAX请求、错误处理、闭包、原型链等多方面的示例,涵盖了从基础到高级的JavaScript编程技巧。 1. **基础语法**:JavaScript的...

    javascript权威指南第五版

    《JavaScript权威指南第五版》是David Flanagan撰写的一本经典JavaScript编程书籍,由O'Reilly出版社出版。这本书全面深入地探讨了JavaScript语言的核心特性和实际应用,是学习和提升JavaScript技能的重要参考资料。...

    JavaScript权威指南(第五版)

    《JavaScript权威指南(第五版)》是一本深受程序员喜爱的经典著作,它全面深入地探讨了JavaScript这门广泛应用于Web开发的脚本语言。JavaScript作为Web程序设计的核心技术,它的掌握对于任何想要在互联网领域有所建树...

    javascript 权威指南第五版(含源码)

    《JavaScript 权威指南》第五版是一本深受程序员喜爱的经典之作,它在JavaScript的学习资源中占据了至高无上的地位。本书全面而深入地探讨了JavaScript的各个方面,是开发者掌握这门语言不可或缺的参考书。作者David...

    JavaScript权威指南(第五版) 英文版

    《JavaScript权威指南(第五版) 英文版》是一本深度解析JavaScript编程语言的重要书籍,尤其对于想要深入了解和精通JavaScript的开发者来说,是不可或缺的参考资料。本书全面涵盖了JavaScript的核心概念和最新技术...

    javascript 权威指南第五版

    《JavaScript权威指南第五版》是前端开发者不可或缺的参考书籍,它深入浅出地阐述了JavaScript这门编程语言的核心概念和机制。这本书不仅适合初学者,也适合已经有一定经验的开发者,帮助他们巩固基础,理解更高级的...

    JavaScript权威指南(第五版英文原版)

    ### JavaScript权威指南(第五版英文原版)关键知识点解析 #### 一、书籍基本信息与特点 **书名:**《JavaScript权威指南》第五版 **作者:**David Flanagan **出版社:**O'Reilly Media **出版日期:**2006年8...

    JavaScript权威指南第五版

    JavaScript权威指南第五版 chm版,供大家更好的学习和查询js相关函数

    JavaScript 权威指南第五版

    《JavaScript权威指南第五版》是一本深受欢迎的编程书籍,专为那些希望深入理解JavaScript语言的开发者而设计。这本书详细地介绍了JavaScript的核心语法,包括对象、继承机制等关键概念,同时涵盖了客户端和服务器端...

    JavaScript权威指南第五版配书源码

    《JavaScript权威指南第五版》是一本深受欢迎的编程书籍,其配套源码为读者提供了实践和深入理解JavaScript语言的重要资源。这份源码包含了书中各种示例、练习和实验,旨在帮助读者通过动手实践来巩固理论知识,提升...

Global site tag (gtag.js) - Google Analytics