JavaScript函数参数与调用
函数调用: /* 1. 函数调用 */
var temp = distance(,,,); /* 2. 方法调用 */
this.CName = "全局";
var o = {
CName:"o类",
m:function(){
var self = this;
console.log(this == o); //true
console.log(this.CName); //o类
f();
function f(){
console.log(this == o);
//false,此this绑定到全局对象
console.log(this.CName);
//全局
console.log(self == o);
//true
console.log(self.CName);
//o类
}
} };
o.m(); 关于this: 一丶当它为一个对象上的方法的时候,this是当前这个对象。 二丶函数调用模式当函数并非一个对象的属性时,那么它被当做一个函数来调用。此模式下this绑定到全局对象。通过在对象内将this赋值给that,可以使函数模式下调用that来访问指定对象。 函数的实参和形参: /* 1. 可选形参 */
function getPropertyNames(o,a){
a = a||[];
for(var property in o){
a.push(property);
}
return a;
} var a = getPropertyNames(o);
var b;
getPropertyNames(p,b); // 两种调用 /* 2. 可变长实参 */
function max(){
var max = ;
for(var i=; i<arguments.length; i++){
if(arguments[i]>max){
max=arguments[i];
}
return max;
}
} // 关于arguments
function test_1(a,b,c,d){
console.log(a,b,c,d); //1,2,3,4
for(var i=; i<arguments.length; i++){
arguments[i] = ;
}
console.log(a,b,c,d); //0,0,0,0
}
test_1(,,,);
//改变arguments[i]时,对应传进去的参数也会改变 caller&callee: // caller: 正在执行函数的函数
// callee: 正在执行的函数
function test_2(){
console.log("test_2"); function test_3(){
console.log("test_3");
function test_4(){
console.log("test_4");
//arguments.callee(); //这里会循环调用test_4
//test_4.caller();//这里回调到test_4调用者test_3
}
return test_4();
}
return test_3();
}
test_2(); // 还可以用来做递归
var plus = function(x){
if(x<=) return ;
return x*arguments.callee(x-);
}
console.log(plus()); 参数类型检测: isfinite(); // 是否有限数
isArrayLike(); // 是否是数组 函数的自定义属性: uniqueInterger.count =
// 给uniqueInterger函数定义了一个count属性
function uniqueInterger(){
//var a="myfunc";
return uniqueInterger.count++;
}
console.log(uniqueInterger()); //
console.log(uniqueInterger()); //
console.log(uniqueInterger()); // 作为命名空间的函数: function myModule(){
// 模块代码
// 这个模块使用的变量都是局部变量
// 不会污染全局命名空间
}
myModule() //别忘记调用这个函数 //或者更简单的
(function(){
// 模块代码
}());
JavaScript函数参数与调用的更多相关文章
- javascript 函数参数
1.javascript函数参数的个数以及类型没有强制规定,调用时不必严格按照函数的参数或类型,函数的参数只是在调用函数的时候提供了便利,但不是必须的! 2.参数在javascript内部是用数组ar ...
- JavaScript函数的各种调用模式
函数是JavaScript世界里的第一公民,换句话来说,就是我们如果可以精通JavaScript函数的使用,那么对JavaScript的运用可以更游刃有余了.熟悉JavaScript的人应该都知道,同 ...
- 理解JavaScript函数参数
前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascri ...
- Javascript 函数声明、调用、闭包
1 # Javascript 函数声明.调用.闭包 2 # 一.函数声明 3 # 1.直接声明.浏览器在执行前,会先将变量和函数声明进行提升. 4 fn(); 5 function fn () { 6 ...
- JavaScript 函数参数是传值(byVal)还是传址(byRef)?
对于“JavaScript 函数参数是传值(byVal)还是传址(byRef)”这个问题,普遍存在一个误区:number,string等“简单类型”是传值,Number, String, Object ...
- ASP.net关于C#代码与javaScript函数的相互调用
C#代码与javaScript函数的相互调用 问:1.如何在JavaScript访问C#函数?2.如何在JavaScript访问C#变量?3.如何在C#中访问JavaScript的已有变量?4.如何在 ...
- 深入理解javascript函数参数与闭包(一)
在看此文章,希望先阅读关于函数基础内容 函数定义与函数作用域 的章节,因为这篇文章或多或少会涉及函数基础的内容,而基础内容,我放在函数定义函数作用域 章节. 本文直接赘述函数参数与闭包,若涉及相关知识 ...
- 深入理解JavaScript函数参数
前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascri ...
- JavaScript 函数——语法,调用,返回值,局部变量,全局变量,未声明变量
JavaScript 函数是被设计为执行特定任务的代码块. JavaScript 函数会在某代码调用它时被执行. ㈠函数 ⑴什么是函数 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. ⑵ ...
随机推荐
- logback 配置详解【讲解较全的博客网站】
http://blog.csdn.net/haidage/article/category/812478 详解(一)http://blog.csdn.net/haidage/article/detai ...
- Linux下设置memcached访问IP
在虚拟机上装了memcached,本地访问可以,但从其它机器连这台机器的memcached应用总是报连接失败.防火墙的端口都是打开的.Google了才知道原来需要修改memcached的配置文件,将默 ...
- MVC _ViewStart文件的作用
指定目录下的所有文件均继承自 某个Layout. 支持最近原则. 参考:http://www.cnblogs.com/iamlilinfeng/archive/2013/02/28/2934397.h ...
- HDU 4405 期望DP
期望DP算是第一题吧...虽然巨水但把思路理理清楚总是好的.. 题意:在一个1×n的格子上掷色子,从0点出发,掷了多少前进几步,同时有些格点直接相连,即若a,b相连,当落到a点时直接飞向b点.求走到n ...
- Vijos 1180 (树形DP+背包)
题目链接: https://vijos.org/p/1180 题目大意:选课.只有根课选了才能选子课,给定选课数m, 问最大学分多少. 解题思路: 树形背包.cost=1. 且有个虚根0,取这个虚根也 ...
- CSS:权重和层叠规则决定了其优先级
首先,给大家看一篇关于CSS优先级的示例:http://www.ido321.com/76.html 一.基本的优先级规则 比较同一级别的个数,数量多的优先级高,如果相同即比较下一级别的个数,至于各级 ...
- JavaScript基础知识总结
正则表达式: 是一种专门用于操作字符串规则. 正则表达式: 通过一些符号来表达,简化对字符串的复杂操作. 弊端:阅读性较差 常见操作: 1.匹配 String matches(regex) 2.获取( ...
- COJ1012 WZJ的数据结构(十二)
今天突然想写个树套树爽一爽(1810ms) 写的是树状数组套线段树(动态开节点) #include<cstdio> #include<cctype> #include<c ...
- Ruby Hash与ActiveSupport’s HashWithIndifferentAccess对于key的区别
Ruby Hash的key定义的时候是支持symbol或者string的,所以访问的时候只能是symbol或者string其中一种方式. 建议使用symbol定义Hash的key,因为symbol在R ...
- MemPool
腾讯笔试题,设计内存池,alloc和free都是O(1). 和LRUCache类似,这里用了一个list表示可用的空间,用一个map来记录这块内存是否已分配,这样free的时候才可能O(1). cla ...