犀牛——第8章函数 8.7函数属性、方法和构造函数
来源:互联网 发布:幽默app软件下载 编辑:程序博客网 时间:2024/05/18 00:54
8.7 函数属性、方法和构造函数
因为函数也是对象,他们也可以拥有属性和方法,就像普通的对象可以拥有属性和方法一样。甚至可以用Function()构造函数来创建新的函数对象。
8.7.1 length属性
arguments.length表示传入函数的实参的个数。
函数的length属性是只读属性,表示在函数定义时给出的形参个数。
8.7.2 prototype属性
prototype属性表示原型对象,每一个函数都包含不同的原型对象。当将函数用做构造函数的时候,新创建的对象会从原型对象上继承属性。
8.7.3 call()方法和apply()方法
call()和apply()看做是某个对象的方法,通过调用方法的形式来间接调用函数。call()和apply()的第一个实参是要调用函数的母对象,它是调用上下文,在函数体内通过this来获得对它的引用。要想以对象o的方法来调用函数f(),可以这样使用call()和apply():
f.call(o);
f.apply(o);
每行代码和下面代码的功能类似
o.m = f; //将f存储为o的临时方法
o.m(); //调用它,不传入参数
delete o.m; //将临时方法删除
call()方法第一次调用上下文参数之后的所有实参就是要传入待调用函数的值。
f.call(o,1,2);
applay()方法实参都放入一个数组当中:.
f.apply(o,[1,2]);
8.7.4 bind()方法
bind()方法将函数绑定至某个对象。当在函数f()上调用bind()方法并传入一个对象o作为参数,这个方法将返回一个新的函数。
function f(y){return this.x + y;}; //这个是待绑定的函数
var o = {x:1}; // 将要绑定的对象
var g = f.bind(o); //通过调用g(x)来调用o.f(x)
g(x) //=>3
8.7.5 toString()函数
大多数的toString()方法的实现都返回函数的完整源码。内容函数往往返回一个类似“[native code]”的字符串作为函数体。
8.7.6 Function()构造函数
函数可以通过Function()构造函数来定义:
var f = new Function("x","y","return x*y;");
等价于:
var f = function(x,y){return x*y;}
8.7.7 可调用的对象
- 犀牛——第8章函数 8.7函数属性、方法和构造函数
- 犀牛——第8章函数 8.1 函数定义
- 犀牛——第8章函数8.2函数调用
- 【笔记】 《js权威指南》- 第8章 函数 - 8.7 函数属性、方法和构造函数
- 犀牛——第8章函数 8.3 函数的实参和形参
- 犀牛——第8章函数 8.6闭包
- 犀牛——第8章函数 8。8returnret8.8函数式编程
- 犀牛——第8章函数 8.4作为值的函数
- 犀牛——第8章函数8.5作为命名空间的函数
- JavaScript权威指南_68_第8章_函数_8.7-函数属性、 方法和构造函数
- 函数的属性、方法和构造函数
- Javascript 函数中的属性、方法和构造函数
- 构造函数、方法重载、属性
- 《权威指南》笔记 - 8.7 函数属性、方法、构造函数
- Ninject依赖注入——构造函数、属性、方法和字段的注入
- Ninject依赖注入——构造函数、属性、方法和字段的注入(三)
- 函数属性和方法
- 函数属性和方法
- Kinect v2.0原理介绍之九:高清面部帧(2) 面部特征对齐
- 数据结构---抽象建模
- socket通信之九:使用完成端口实现的一个聊天室
- 哲学家就餐问题
- [刷题]Hash Function
- 犀牛——第8章函数 8.7函数属性、方法和构造函数
- 51nod 求子段和问题总结(DP)
- python & opencv 环境搭建
- static变量与全局、局部变量的区别 !
- 【转】如何使用Notification功能
- ubuntu发出奇怪的相声
- ListView
- python字符串:
- 《剑指Offer》面试题:反转链表