<script>
//caller 得到呼叫自己的function
function callerDemo() {
if (callerDemo.caller) {
var a= callerDemo.caller.toString();
alert(a);
} else {
alert("this is a top function");
}
}
function handleCaller() {
callerDemo();
}
//callerDemo()
//handleCaller()
//arguments 获得 当前方法需要的参数个数
//arguments.callee 获得当前方法
//arguments.callee.length 获得当前方法传入参数的可是
function calleeDemo() {
alert(arguments.callee);
}
function calleeLengthDemo(arg1, arg2){
alert(arguments.callee.length)
if (arguments.length==arguments.callee.length) {
window.alert("验证形参和实参长度正确!");
return;
} else {
alert("实参长度:" +arguments.length);
alert("形参长度: " +arguments.callee.length);
}
}
//calleeDemo()
//calleeLengthDemo(10)
//用于实现function 的继承
function simpleCallDemo(arg) {
window.alert(arg);
}
function handleSPC(arg) {
//把simpleCallDemo的所有方法赋值给当前对象
//参数根据simpleCallDemo的个数加
simpleCallDemo.call(this, arg);
}
//handleSPC("111")
function simpleApplyDemo(arg) {
window.alert(arg);
}
function handleSPA(arg) {
//把simpleApplyDemo 的所有方法赋值给当前对象
//参数为当前对象的参数(数组)
simpleApplyDemo.apply(this, arguments);
}
//handleSPA("111")
//实现对象的继承
var test = {
value : 'default',
exec : function(){
alert(this.value);
}
}
function hhh(obj){
test.exec();
test.exec.apply(obj);
}
</script>
分享到:
相关推荐
### 理解JavaScript中的`caller`...综上所述,理解`caller`、`callee`、`call`、`apply`以及`arguments`对象在JavaScript编程中至关重要,它们不仅增强了函数的灵活性和复用性,还提供了深入分析和调试代码的强大工具。
这篇文章将深入探讨四个关键概念:caller、callee、call和apply,它们都是JavaScript函数操作的核心部分,对于理解和使用高级JavaScript编程至关重要。 首先,我们来了解`caller`和`callee`。在JavaScript的函数...
在JavaScript的世界里,caller、callee、call和apply是四个非常重要的概念,它们涉及到函数的调用方式和执行上下文。这些知识点对于深入理解和优化代码至关重要,尤其在处理高阶函数和面向对象编程时。 首先,让...
在深入了解`caller`, `callee`, `call`, 和 `apply` 之前,我们先来看看`arguments`对象。`arguments`对象是在JavaScript函数内部自动创建的一个特殊对象,用于表示传入函数的实际参数。 ##### 基本概念 - **定义*...
JavaScript中arguments、caller、callee、call和apply是与函数相关的几个重要概念和对象。它们为JavaScript的函数提供了非常灵活的功能,特别是在处理函数参数和调用上下文方面。接下来,将对这些概念逐一进行详细...
在深入探讨`caller`, `callee`, `call`, 和`apply`之前,我们先来了解一个重要的概念——`arguments`对象。 **`arguments`对象概述** - **定义**: 在JavaScript中,`arguments`是一个特殊的本地变量,它表示函数...
在JavaScript编程中,apply、call、caller、callee和bind是与函数相关的几个重要概念,它们都与函数的this上下文相关,以及如何控制函数的调用方式。接下来,我们将详细分析这些方法的使用方法和区别。 ### call...
综上所述,`call`和`apply`主要用来改变函数的`this`指向和传递参数,`callee`用于在匿名函数中引用自身,`caller`用于获取调用函数的信息,而`arguments`对象则提供了访问函数所有参数的能力。这些特性使得...
4. **ES6的箭头函数**:箭头函数没有自己的`this`、`arguments`、`.call`、`.apply`和`.constructor`等方法,因此它们无法使用`arguments.callee`。在ES6中,通常建议使用`let`或`const`来声明一个内部函数,然后...
JavaScript中的`arguments`、`callee`和`caller`是三个非常重要的概念,它们与函数的参数处理和调用栈有着密切关系。 `arguments`对象是一个类数组对象,它包含了函数被调用时的所有参数,即使这些参数没有在函数...
JavaScript不支持传统意义上的多重继承,但我们可以使用call()或apply()方法模拟多重继承的效果。假设我们有两个父类Class10和Class11,我们想在Class2中使用它们的方法: ```javascript function Class10() { ...
JavaScript中的`Function`和`Arguments`是两个非常重要的概念,它们在函数的使用和操作中起着关键作用。 首先,`Function`在JavaScript中是一种内置的对象类型,它允许我们定义和执行可重用的代码块,即函数。函数...
3.1、参数对象 (arguments) 3.2、构造函数 3.3、函数调用 3.3.1、call 3.3.2、apply 3.3.3、caller 3.3.4、Callee 3.5、立即执行函数表达式 (IIFE) 3.5.1、匿名函数与匿名对象 3.5.2、函数与函数表达式 3.5.3、...
而通过使用arguments对象、call、apply等方法,我们可以对函数的参数进行更高级的操作,从而实现更灵活的函数调用机制。 总而言之,掌握Javascript中的动态方法调用和参数修改的知识,对于提升开发者的编程能力,...
此外,`this` 还可以在构造函数中引用新创建的对象,或者在 `call`、`apply` 或 `bind` 方法中显式设置。这些方法允许开发者控制 `this` 的值,从而实现更灵活的函数调用。 除了 `arguments` 和 `this`,还有一个...
在函数调用中,`this`的确定较为复杂,需要根据调用方式(常规调用、apply/call方法、箭头函数等)来判断。 6. **函数属性**: - `caller`属性:在非严格模式下,`caller`属性表示调用当前函数的函数,但在ES5中已...
4. **`apply`与`call`方法**:用于绑定函数的执行上下文,`call`接受一系列参数,`apply`则接受参数数组。 #### 六、匿名函数与立即执行函数表达式 匿名函数无需命名,可以直接定义并调用,常用于事件处理或闭包...