犀牛——第8章函数8.2函数调用
来源:互联网 发布:淘宝卖家一直不发货 编辑:程序博客网 时间:2024/04/30 07:25
8.2函数调用
有4种方式来调用JavaScript函数:
作为函数
作为方法
作为构造函数
通过他们的call()和apply()方法间接调用
8.2.1 函数调用
普通的函数调用表达式:
printprops({x:1});
var total = distance(0,0,2,1) + distance(2,1,3,5);
var probability = factorial(5)/factorial(13);
对函数调用的规定,调用上下文(this的值)是全局对象。然而在严格模式下,调用上下文则是undefined,以函数形式调用的函数通常不使用this关键字。
8.2.2方法调用
一个方法无非是个保存在一个对象的属性里的JavaScript函数。
如果有一个函数和一个对象o,则可以用下面的代码给o定义一个名为m()的方法:
o.m = f;
给对象o定义了方法m(),调用它时就像这样:
o.m();
或者,如果m()需要两个参数,调用起来则像这样:
o.m(x,y);
方法调用和函数调用有一个重要的区别,即:调用上下文。
例子:
var calculator = {//对象直接量
operand1:1,
operand2:1,
add:function(){
//注意this关键字的用法,this指代当前对象
this.result = this.operand1 + this.operand2;
}
};
calculator.add();//这个方法调用计算1+1的结果
calculotor.result //=>2
8.2.3 构造函数调用
如果函数或者方法调用之前带有关键字new,它就构成构造函数调用。
凡是没有形参的构造函数都可以省略圆括号,比如,下面这两行代码是等价的:
var o = new Object();
var o = new Object();
构造函数调用创建一个新的空对象,这个对象继承自构造函数的prototype属性。构造函数视图初始化这个新创建的对象,并将这个对象用做其调用上下文,因此构造函数可以使用this关键字来引用这个新创建的对象。
8.2.4 间接调用
JavaScript中的函数也是对象,和其他JavaScript对象没什么两样,函数对象也可以包含方法。其中的两个方法call()和apply()可以用来间接地调用函数。两个方法都允许显示指定调用所需的this值。
- 犀牛——第8章函数8.2函数调用
- 犀牛——第8章函数 8.1 函数定义
- 犀牛——第8章函数 8.6闭包
- 犀牛——第8章函数 8.7函数属性、方法和构造函数
- 犀牛——第8章函数 8。8returnret8.8函数式编程
- 犀牛——第8章函数 8.3 函数的实参和形参
- 犀牛——第8章函数 8.4作为值的函数
- 犀牛——第8章函数8.5作为命名空间的函数
- 犀牛——第5章语句
- 犀牛——第2章词法结构
- 犀牛——第4章表达式和运算符
- 犀牛——第6章对象 6.1 创建对象
- 犀牛——第6章对象 6.3删除属性
- 犀牛——第6章对象 6.5 枚举属性
- 犀牛——第7章数组 7.1 创建数组
- 犀牛——第7章 7.3稀疏数组
- 犀牛——第7章数组 7.8 数组方法
- 犀牛——第7章数组 7.9数组方法
- OC 集合-学习笔记(数组、字典、Set集合、数值数据)
- HTTP 协议简介
- 零基础学python-10.3 表达式
- 面向对象的三大特征--封装/继承/多态
- 有道一面
- 犀牛——第8章函数8.2函数调用
- VS快捷键
- Socket模型详解
- 阴天快乐 -- 陈奕迅(eason)
- 响应能力总结--Android
- Executor
- My mini project: display a text in my own PC
- 【Android 开源项目】下拉刷新Android-PullToRefresh介绍
- UML类图几种关系的总结