//函数内部属性-arguments-callee:指向拥有这个arguments对象的函数
//递归:阶乘函数
function factorial(num){
if(num <= 1){
return 1;
}else{
return num * arguments.callee(num - 1);
}
}
console.log("callee()使用:"+factorial(10));
//函数内部属性-this:指函数据以执行的环境对象
window.color = "red";
var o = {color :"blue" };
function sayColor(){
console.log(this.color);
}
sayColor();//"red"
o.sayColor = sayColor;
o.sayColor();//"blue"
//函数内部属性-caller:保存着调用当前函数的函数引用
function outer(){
inner();
}
function inner(){
console.log("caller:"+arguments.callee.caller);//返回outer函数的源代码
}
outer();
//函数属性-length:表示函数希望接收的命名参数的个数
function sayName(name){
console.log(name);
}
function sayHi(){
console.log("hi");
}
console.log("函数属性-length:"+sayName.length);//1
console.log("函数属性-length:"+sayHi.length);//0
//函数属性-prototype:保存所有实例方法,其属性不可枚举
//函数方法-apply()和call():在特定的作用域中调用函数,类似设置函数体内this对象的值
//函数方法-apply():接收两个入参,一个是其中运行函数的作用域,另一个是参数数组(可以是Array实例,也可以是arguments对象)
function sum(num1,num2){
return num1+num2;
}
function applySum(num1,num2){
return sum.apply(this,arguments);//传入arguments对象
}
function applySum2(num1,num2){
return sum.apply(this,[num1,num2]);//传入数组
}
console.log("apply()"+applySum(10,12));//22
console.log("apply()"+applySum2(10,12));//22
//函数方法-call():第一个是其中运行函数的作用域,其余参数都直接传递给函数
function callSum(num1,num2){
return sum.call(this,num1,num2);
}
console.log("call()"+callSum(10,12));//22
//函数方法-apply()和call()的重点:扩充函数赖以运行的作用域
window.year = "2018";
var cur = {year:'2019'};
function getYear(){
console.log(this.year);
}
getYear.call(this);//2018
getYear.call(cur);//2019
//函数方法-bind():创建一个函数的实例,其this值会作为参数传给bind()函数
var instanceGetYear = getYear.bind(cur);
instanceGetYear();//2019
//函数方法-toLocaleString()和toString()、valueOf()返回函数代码
console.log("toLocaleString()"+getYear.toLocaleString());
console.log("toString()"+getYear.toString());
console.log("valueOf()"+getYear.valueOf());
JavaScript中function的学习
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 函数function,作用:说不出来(或许度娘能帮到忙) Function 是声明函数的关键字,在function...
- 最近在看《Javascript for Web Developers》,虽然在VT项目中的一个小demo中担任了前...
- javascript中function(){}(),new function(),new Function(),F...