js_func

1.定义

普通函数:

function 函数名(参数){
	代码块
	return 返回值
	}

匿名函数:

function (参数){
	代码块
    return **
	}


匿名函数一般作为立即执行函数
(function (函数名,一般不写)(参数){
	代码块
	})(参数)

'''立即执行函数,其他写法'''
!function () { /* code */ } ();
~function () { /* code */ } ();
-function () { /* code */ } ();
+function () { /* code */ } ();
void function () { /* code */ } ();
this
1.以方法调用时,this指的是调用方法的那个对象
2.以函数调用时,this永远指window
3.以实例调用时,this指的是改实例
var name = '小白'
function fun(){
	alert(this.name)
	}
var obj1={name:'小明',myfun:fun}
var obj2={name:'小花',myfun:fun}
fun()
obj1.myfun()  >>>小明
obj2.myfun()  >>>小花

 

作用域


1.定义:函数外部定义的为全局,函数内部定义的为局部

2.补充:全局变量都是window对象的属性,全局函数都是window对象的方法

3.特点:

1.在函数中使用变量,会先在当前作用域里查找,如果没有再往上一级找
2.在函数中如果想直接使用全局变量,不用var直接使用即可,或window.变量
3.在函数中如果不使用 var 定义变量,那么它就是全局变量,相当于window.变量 

 

变量提升

1.js会先加载function,所以func的位置为在哪调用无关

2.js会先加载var(变量),但不会对其进行赋值操作,将function赋值也是这样

 

工厂模式

function creat_person(name,age){
    var obj = new Object;
    obj.name=name
    obj.age=age
    obj.alertName=function(){
        alert(this.name)
        }
    return obj
}
var one =creat_person('张三',10)
var two =creat_person('李四',10)
one.alertName()   //张三
two.alertName()   //李四

 

call()与apply()

在调用call()与apply()时可以将一个对象指定为第一个参数
此时这个对象会成为函数的this

function func(){
    alert(this.name)
}
		
obj1={name:'obj1'}
obj2={name:'obj2'}		
func.call(obj1)	>>>obj1
func.apply(obj2)  >>> obj2
function func2(a,b){
    this.a=a
    this.b=b
    alert(a)
    alert(b)
    }
obj1={name:'obj1'}
obj2={name:'obj2'}
apply要把参数放进一个数组
func2.apply(obj1,[2,3])

call在对象后依次传递
func2.call(obj1,2,3)

 

arguments属性

在调用函数时,会传递两个隐含属性,一个是this,一个是arguments

function func(){
    不管func有无定义形参,通过arguments都可以拿到实参
    console.log(arguments.length) >>>参数的长度
    console.log(arguments[0]) >>>第一个参数
    ...
    console.log(arguments[arguments.length-1]) >>>最后一个参数
}

func(1,2)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值