js函数

1.js中的函数也是对象,可以像对象那样操作和传递

函数包括函数名,参数列表,函数体

this  arguments  作用域  不同调用方式  不同创建方法

2.函数的调用方式

直接调用 foo()

对象方法 o.method()

构造器 new foo()

原型链上的方法call/apply/bind  func.call(o);

3.创建函数的方式

函数声明 function foo(a,b){}

函数表达式var add = funcition(a,b){}

(function(){})

return function(){}

命名函数表达式var add = funcition  foo(a,b){}

函数构造器var func()=new Function('a','b');

var func()=Function('a','b');

函数声明和函数表达式的区别:a.只有函数声明会被前置;b.函数声明不可以被立刻调用;c.只有函数声明可以再在定义该函数的作用域内通过函数名访问

4.this关键字

全局的this 指向window

一般函数的this 指向window

作为对象方法的函数this,把函数作为对象方法,this一般会指向对象

var o= {prop:37;f:function(){return this.prop}};   logs 37

var o = {prop:37}     function independent(){return this.prop;//此处this指向window}  o.f=independent;

对象原型链上的this

get/set方法的this 指向get/set方法所在的对象

构造器中的this

call/apply/bind中的this


判断this的指向(1-4优先级逐级递减,1优先级最高,4优先级最低):
1、函数被new调用,this指向由new新构造出来的这个对象;
2、函数通过call()、apply()、bind()调用,this指向被绑定的对象;
3、函数作为方法被调用,this指向这个对象(即常说的对象上下文);
4、默认(非严格模式)情况下,this指向window, 严格模式下,this指向undefined

5.函数属性arguments

6.匿名函数  function后边没有名字的函数
当匿名函数是以被赋值的形式出现,并且它是被事件调用
匿名函数要有两个条件
时间  onload
赋值  =
匿名函数不能直接声明
function(){}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值