javascript之function对象包括call()和apply()
来源:互联网 发布:91永久域名 编辑:程序博客网 时间:2024/06/05 11:04
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
function test(){
}
console.log(test.constructor);
function test1(x,y,z){
return x+y+z;
}
console.log(test1.length);//返回函数参数的个数
//caller 在于谁调用A函数 就返回是谁调用的
function A(){
return A.caller;
}
function B(){
return A;
}
console.log(B());
console.log(A());//应为没有任何外层函数调用A 所以返回为null
//返回该函数执行时内置的argunebts对象
function test2(){
return arguments;
}
console.log(test2(2,2,2,344));
// arguments对象中有一个callee的属性 就是返回当前自身被调用的函数
function f(){
return arguments.callee;
}
console.log(f());//返回的就是f()这个函数
// 匿名函数的递归调用
(
function(count){
if(count<=3){
console.log(count);
arguments.callee(++count);
}
}
)(0);
var obj={
name:"liye",
say:function(somebody){
return 'hello '+somebody+' im '+this.name;
}
};
console.log(obj.say('fff'));
//call()方法
var obj1={
name:'obj1name'
}
//在这里obj1也想调用obj里面的say方法 就要用到call()方法
//第一个参数是想调用的对象 第二个是参数 也可以传多个参数
console.log(obj.say.call(obj1,'xx'));//hello xx im obj1name
var obj2={
calc:function(x,y,z){
return x+y+z;
}
};
console.log(obj2.calc.call(null,1,2,3))
//但这里传递三个参数太麻烦 于是用apply()来传递一个数组 就包含了三个参数
console.log(obj2.calc.apply({},[1,1,1]));
</script>
</head>
<body>
</body>
</html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
function test(){
}
console.log(test.constructor);
function test1(x,y,z){
return x+y+z;
}
console.log(test1.length);//返回函数参数的个数
//caller 在于谁调用A函数 就返回是谁调用的
function A(){
return A.caller;
}
function B(){
return A;
}
console.log(B());
console.log(A());//应为没有任何外层函数调用A 所以返回为null
//返回该函数执行时内置的argunebts对象
function test2(){
return arguments;
}
console.log(test2(2,2,2,344));
// arguments对象中有一个callee的属性 就是返回当前自身被调用的函数
function f(){
return arguments.callee;
}
console.log(f());//返回的就是f()这个函数
// 匿名函数的递归调用
(
function(count){
if(count<=3){
console.log(count);
arguments.callee(++count);
}
}
)(0);
var obj={
name:"liye",
say:function(somebody){
return 'hello '+somebody+' im '+this.name;
}
};
console.log(obj.say('fff'));
//call()方法
var obj1={
name:'obj1name'
}
//在这里obj1也想调用obj里面的say方法 就要用到call()方法
//第一个参数是想调用的对象 第二个是参数 也可以传多个参数
console.log(obj.say.call(obj1,'xx'));//hello xx im obj1name
var obj2={
calc:function(x,y,z){
return x+y+z;
}
};
console.log(obj2.calc.call(null,1,2,3))
//但这里传递三个参数太麻烦 于是用apply()来传递一个数组 就包含了三个参数
console.log(obj2.calc.apply({},[1,1,1]));
</script>
</head>
<body>
</body>
</html>
0 0
- javascript之function对象包括call()和apply()
- JavaScript 面向对象(四)call()和apply()
- JavaScript之Function的apply与call
- JavaScript 面向对象之二 —— 函数上下文(call() 和 apply())
- javascript中的call()和apply()
- javascript 之 call & apply
- JavaScript 之call , apply 和prototype 介绍
- JavaScript 之call , apply 和prototype 介绍
- javascript学习笔记之Call()和Apply()
- JavaScript学习笔记之Apply和Call
- javascript学习笔记之apply()和call()
- javascript之apply()和call()用法浅析
- javascript call()和apply()
- javascript call和apply
- javascript call()和apply()
- JavaScript call()和apply()
- 【转载】javascript技术难点(三)之this、new、apply和call详解
- javascript技术难点(三)之this、new、apply和call详解
- libkafka 由于目标计算机积极拒绝,无法连接
- android 监听检测USB存储设备
- Unity3d Android SDK接入解析(一)Unity3d 与 Android之间的互相调用
- Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭
- vi编辑器常用命令
- javascript之function对象包括call()和apply()
- Extjs控件属性总结
- Emacs使用c-mode
- 简单的textField 应用 逻辑很混乱。
- Volley 源码解析
- javaIO流 FileReader 的readLIne 和 read的区别
- ubuuntu使用笔记
- iOS开发-UITextField 使用全面解析
- 算法的时间复杂度