JS—Function类型

1.函数的声明方式有三种
普通函数的声明方式
function box(num1,num2)
{
return num1+num2;
}
alert(box(1,2));

使用变量初始化函数
var box = function(num1,num2)
{
return num1+num2;
};

alert(box(1,2));

使用NEW的构造函数来声明
var box = new Function('num1','num2','return num1+num2');
alert(box(1,2));

2.作为值的函数
不是作为函数来传递的,而是作为函数的返回值来传递
function box(sum,num)
{
return sum + num;
}

function sum(num)
{
return num + 10;
}

var result = box(sum(10),10); //sum(10)这里传递的是函数的返回值和普通的变量一样
alert(result);


将函数当成参数传递给另一个函数

function box(sum22,num55)
{
return sum22(num55);
}

function sumj(num)
{
return num + 12; //返回22
}

var result = box(sumj,10); //这里sumj是一个函数,当作参数传递到另外一个函数里,而不是函数的返回值。
alert(result);

3.函数内部属性
arguments.callee调用自己本身的函数
function box(num)
{
if(num <= 1)
{
return 1;
}else{
return num * arguments.callee(num-1); //使用arguments.callee,调用自身,实现递归
}
}
alert(box(5));

window是一个对象,而且是JS里面最大的对象,是最外围的对象
//alert(typeof window); window是对象,类型是对象
//alert(this); [object Window] this目前表示的是window,因为在window的范围下
//alert(typeof this); //和window一样,所以this就是window

var color = '红色的'; //这里color就是全局变量,而这个变量又是window的属性
alert(window.color); //alert打印出color,说明color是window下的属性。
alert(this.color); //同上

window.color = '红色的'; //相当于var color = '红色的';。
alert(this.color);

var box = {
color:'蓝色的', //这里的color是box下的属性,也就是局部变量
sayColor:function(){
alert(this.color); //这里this,代表的是box对象。
}
};
box.sayColor();

4.函数属性和方法
function box(name,age)
{
return name + age;
}
alert(box.length);

function box(num1,num2)
{
return num1 + num2;
}
function sum(num1,num2) //apply和call可以冒充另外一个函数
{
return box.apply(this,[num1,num2]); //this表示window作用域,[]表示传递的参数
}
function sum2(num1,num2)
{
return box.apply(this,arguments); //这个可以当数组传递,arguments
}
alert(sum(10,10));

function box(num1,num2)
{
return num1 + num2;
}
function sum(num1,num2)
{
return box.call(this,num1,num2); //call只是传递参数不同,其他和apply一样
}
alert(sum(10,10));

var color = '红色的'; //全局
var box = { //局部
color:'蓝色的'
};
function sayColor(){
alert(this.color);
}
sayColor.call(window); //window下
sayColor.call(this); //this就是window
sayColor.call(box); //作用域在box对象里面

转载于:https://www.cnblogs.com/zhengfuheidao/p/6744609.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值