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


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


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()创建的是一个匿名函数
这个很少用到。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值