JS函数的属性
2014-11-14 17:12
225 查看
1.arguments.callee
2.Length:表示函数希望接收的命名参数的个数
3.prototype:在创建自定义引用类型以及实现继承时,该属性的作用极为重要,该属性不可枚举,因此使用for-in 无法发现
方法:
1.apply()和call()
用途:在特定的作用域中调用函数,等于设置函数体内this对象的值
2.bind():创建一个函数的实例,其this的值会被绑定到传给bind()函数的值
//经典的阶乘(递归)函数 function factorial(num) { if (num <= 1) { return 1; } else { return num * factorial(num - 1); } } //消除函数名的耦合现象 function factorial(num) { if (num <= 1) { return 1; } else { return num * arguments.callee(num - 1);//函数内部属性 [callee] } } var trueFactorial = factorial; factorial = function () { return 0; }; alert(trueFactorial(5));//120 使用callee属性 接触函数名耦合状态 可以继续使用递归 否则返回0 alert(factorial(5)); //0
2.Length:表示函数希望接收的命名参数的个数
3.prototype:在创建自定义引用类型以及实现继承时,该属性的作用极为重要,该属性不可枚举,因此使用for-in 无法发现
方法:
1.apply()和call()
用途:在特定的作用域中调用函数,等于设置函数体内this对象的值
function sum(num1, num2) { return num1 + num2; } function callSum(num1, num2) { return sum.call(this, num1, num2);//明确传入每一个参数 } function callSum1(num1, num2) { return sum.apply(this, arguments);//传入arguments对象 } function callSum2(num1, num2) { return sum.apply(this, [num1, num2]);//传入数组 } alert(callSum1(10, 10));//20 alert(callSum2(10, 10));//20
2.bind():创建一个函数的实例,其this的值会被绑定到传给bind()函数的值
window.color = "red"; var o = { color: "blue" }; function sayColor() { alert(this.color); } var objectSayColor=sayColor.bind(o); objectSayColor();//blue;
相关文章推荐
- js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称
- js中函数的arguments属性
- js 函数的 caller 属性
- (11)JS中通过函数传参用一个函数设置不同属性及其值
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- Thin的DateChooser代码学习(关于js的函数参数为一个完整的函数以及“对象不支持此属性或方法”错误的解决)(原创,转载请声明)
- 显示js对象所有属性和方法的函数
- js 函数 属性
- 【JS--基础--函数】--隐含参数对象arguments的callee 属性
- 显示js对象所有属性和方法的函数
- js常用属性及函数
- javascript Function对象的length属性及js函数的预执行
- js RuntimeObject() 获取ie里面自定义函数或者属性的集合
- 显示js对象所有属性和方法的函数
- js中函数期望的参数个数测试,利用变量名.length属性
- js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- jquery源码阅读知识储备(7)JS函数中的argument属性
- Ferris教程学习笔记:js示例2.10 函数传参,改变Div任意属性的值
- JS之arguments属性解读函数传参?