javascript的函数属性和方法

在ECMAScripte中的函数是一个对象,因此函数也有属性和方法。
属性:length和property

length:指的是函数传入参数的个数

function sayName(name){

alert(name);

}

alert(sayName.length); //将会输出为1;

property:创建的每一个函数都有这个property属性,这个属性是一个指针,指向一个对象,而这个对象包含了可以由指定类型的所有实力共享的属性方法。在创建自定义引用类型以及实现集成时,这个属性极为重要。

function Person(){

}

Person.property.name="xx";

Person.property.sayName = function(){

alert(this.nam);

}

var person = new Person();

person.sayName(); //将会输出xx


方法:call和apply ,这两个方法主要扩充函数执行的环境(上下文)

call:必须传入等同的参数个数

apply:参数一个数组

例如:

function sum(a , b){

return a+ b;

}

function callSum(a,b){

return sum.call(this,a,b); //传入的是参数

}

function applySum(a ,b){

return sum.apply(this,[a,b]); //传入的是数组 ,这里也可以是window.arguments对象

}


 如果我们自定义了一个对象,想使用自定义对象里的数据,而不是window对象下的属性

window.name="win";

var obj = {

name:'obj'

}

function sayName(){

alert(this.name);

}

var say = sayName.bind(obj); //把obj对象扩充到函数的执行环境中,函数首先会找到obj.name ,然后停止找name. 如果找age ,由于obj里面没有age,那么找age路径就是从obj到//window.

say(); //将输出xx

//也可以直接使用sayName.call(obj);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值