您的位置:首页 > Web前端 > JavaScript

javascript的函数属性和方法

2015-12-20 22:55 671 查看
在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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: