《权威指南》笔记 - 8.7 函数属性、方法、构造函数

原创 2015年07月08日 13:29:02

函数是值。
函数是对象。
函数有方法和属性。


length属性

arguments.length指的是实际传入参数的个数
函数自身的length属性,指的是函数期望传入参数的个数。可以通过arguments.callee.length来获取


prototype属性

函数是对象,函数也有prototype属性
当函数被当作构造函数使用的时候,新创建的对象,将会从prototype上继承属性


call()、apply()

函数体中,this指针,指向的是函数的调用者。

例如

function f(){return this;}
f();//window
var o = {};
o.m = f;
o.m();// o

call()、apply()两个方法,可以通过传入参数,来改变上下文环境,也就是this指针指向。
区别在于,apply()传入的参数,除了第一个实参,其他的参数盛放在一个数组中。

function f(){return this;}
f.call(o);//this

bind()

作用:将函数绑定到某个对象,也就是让这个函数在调用的时候,this指针指向这个对象
参数:一个对象
返回值:一个新的函数

function f(){ return this.name; }
var o ={ name:"Qix"};
var new1 = f.bind(o);
new1();//Qix

绑定的时候加入参数,参数也会绑定到新函数中

function add(y){return this.x + y;}
var o = { x:1};
var new2 = add.bind(o,1);
new2();//2

toString()

一般函数返回源码
内置函数返回的源码中函数体被”[native code]”替换了


Function()构造函数

参数:
任意个,最后一个参数是函数体,其他的为形参

var f = new Function("x","y","return x+y;");
等价于
function f(x,y){return x+y;}

**:Function()创建的是一个匿名函数
这个很少用到。


相关文章推荐

犀牛——第8章函数 8.7函数属性、方法和构造函数

8.7 函数属性、方法和构造函数 因为函数也是对象,他们也可以拥有属性和方法,就像普通的对象可以拥有属性和方法一样。甚至可以用Function()构造函数来创建新的函数对象。 8.7.1 leng...

C#构造函数平均值方法

  • 2014年03月23日 13:40
  • 1KB
  • 下载

《从零开始学Swift》Swift 2.0学习笔记(Day 38)——构造函数与存储属性初始化

原创文章,欢迎转载。转载请注明:关东升的博客  构造函数的主要作用是初始化实例,其中包括:初始化存储属性和其它的初始化。在Rectangle类或结构体中,如果在构造函数中初始化存储属性width和he...

Date全部方法和构造函数

  • 2012年06月03日 13:21
  • 2KB
  • 下载

JAVA反射系列之 构造函数,方法,属性反射详解

一 前言上篇博客我们讲了 Class 类,也是为本篇做铺垫的。下面进入正文1.1反射机制是什么?答:在程序运行状态时,对于任意一个类,都能够知道这个类的所有构造函数,方法和属性;对于任意一个对象,都能...

JavaScript 内置对象(二):Date 对象(构造函数、属性和方法)

Date 对象就是日期对象,它可以表示从年用毫秒的所有时间和日期。该对象是 JavaScript 内置对象中使用频率最高的一个对象。 1、Date 对象的构造函数 Date 对象的构造函数有以下4种:...

System.Linq.Expressions.Expression 的 320个方法、2个构造函数和3个属性

提供一种基类,表示表达式树节点的类派生自该基类。它还包含用来创建各种节点类型的static(在 Visual Basic 中为Shared)工厂方法。这是一个abstract 类。 方法...
  • educast
  • educast
  • 2012年08月23日 09:13
  • 5565

《从零开始学Swift》学习笔记(Day 38)——构造函数与存储属性初始化

构造函数的主要作用是初始化实例,其中包括:初始化存储属性和其它的初始化。在Rectangle类或结构体中,如果在构造函数中初始化存储属性width和height后,那么在定义他们时就不需要初始化了。 ...

java的反射(构造函数,属性,方法)以及JAXP解析DOM文档

构造函数的反射 1   无参数的构造函数  Class clazz = Class.forName("cn.jauronl.Person");    Constructor constructor...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《权威指南》笔记 - 8.7 函数属性、方法、构造函数
举报原因:
原因补充:

(最多只允许输入30个字)