JavaScript高级程序设计学习总结四(JavaScript引用类型二)

5.Function类型

定义

使用函数声明定义 

function sum(num1,num2){
        return num1+num2;
}

使用函数表达式定义

var sum = function (num1,num2){
        return num1+num2;
}

使用Function构造函数定义

var sum = Function("num1","num2","num1+num2")

使用函数名就是使用函数的指针!

函数名本身就是变量,可以作为值来使用!


函数的内部属性:

arguments是类数组对象,包含传入的所有参数。但是还有一个callee属性,指向有arguments对象的函数

function factorial (num){
if (num<1)  return 1;
else return num*arguments.callee(num-1)
}
this函数操作的对象,也是函数执行所处的作用域。


函数属性和方法:

length表示函数希望接受命名参数的个数。

function a(num){}
function b(num1 ,num2){}
function c(n1,n2,n3){}
alert(a.length); //1
alert(b.length); //2
alert(c.length); //3


prototype 对于引用类型而言,prototype是保存他们所有实例方法真正所在。。。。


每个函数都包含两个非继承而来的方法,apply() 和 call()

apply()接受两个参数,第一个是其中运行函数的作用域this,第二个是参数数组argument 或者[    ]

function sum(num1,num2){
    return num1+num2;
}
function callsum1(num1,num2){
    return sum.apply(this,argument);
}
function callsum2(num1,num2){
    return sum.apply(this.[num1,num2]);
}
call()和apply()差不多,第一个参数是作用域,第二个参数必须一个一个的传

function sum (num1,num2){
    return num1+num2;
}
function callsum(num1,num2){
    return sum.call(this,num1,num2);
}
最大的好处是:对象和函数不需要有任何耦合!!!

window.color = "red";
var o = {color : "blue"};
function  sayColor(){
alert(this .color);
}
sayColor();       //red
sayColor(this);   //red
sayColor(window); //red
sayColor(o);      //blue


toLocalString()   &  toString()  &   valueof() 都是返回函数的代码,代码根据浏览器存在差异。
 






















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值