函数


函数的实参和形参

function    temp (a,b){ console.log(a) };  // a , b为两个形参
var a1 = 2;
var b1 = 3;
temp(a1,b1); //a1 , b1为两个实参
  • 当调用函数的时候传入的实参比函数声明指定的形参个数要少,剩下的形参都将设置为undefined.
  • 在函数体内,我们可以用标识符arguments来访问传入函数的实参值。实参对象是一个类数组对象(拥有一个数值length属性和对应非负整数属性的对象看做一种类型的数组),这样可以通过数字下标来访问。

函数prototype

每一个函数都包含一个prototype属性,这个属性是指向一个对象的引用,这个对象称为“原型对象”(prototype object)。每一个函数都包含不同的原型对象。当将函数用作构造函数的时候,新创建的对象会从原型对象上继承属性。

function Counter(){
this.add=function(a,b){
console.log(a+" + "+b+" = "+ (a+b));
};
}; Function.prototype.minus = function(a,b){
console.log(a+" - "+b+" = "+(a-b))
}; Object.prototype.multiply = function(a,b){
console.log(a+" * "+b+" = "+a*b)
};
Counter.prototype.devide = function(a,b){
console.log(a+" / "+b+" = "+a/b);
}; function Example(){
}; var temp = new Counter();
var temp2 = Counter;
var temp3 = Object.create(temp); temp3.add(1,5);
temp.add(1,3);
temp2.multiply(1,3);
temp.devide(3,2);
console.log("add" in temp);
console.log("minus" in temp);
console.log("multiply" in temp);
console.log("devide" in temp); 1 + 5 = 6
1 + 3 = 4
1 * 3 = 3
3 / 2 = 1.5
true
false
true
true

函数作用域

  • 1.JS的变量作用域是函数级的。
  • 2.JS编程环境的顶级作用域是window对象下的范围,称为全局作用域,全局作用域中的变量称为全局变量。
  • 3.JS函数内的变量无法在函数外面访问,在函数内却可以访问函数外的变量,函数内的变量称为局部变量。
  • 4.函数可以嵌套,多个函数的层层嵌套构成了多个作用域的层层嵌套,形成了JS的作用域链。
  • 5.JS作用域链的变量访问规则是:如果当前作用域内存在要访问的变量,则使用当前作用域的变量,否则到上一层作用域内寻找,直到全局作用域,如果找不到,则该变量为未声明。

代码示例

var a = 1;
var c = 3;
function example(a){
var a = 3;
b = 2;
console.log("a="+a);
}
example(2); function example2(c){
console.log("b="+b+",c="+c);
}
example2(4); function example3(d){
var d = 4;
return function example4(){
console.log("d="+d);
}
}
var temp = example3();
temp(); a=3
b=2,c=4
d=4

6-JS函数(二)的更多相关文章

  1. (八)js函数二

    1.变量 a)局部变量:在所有函数内部定义的变量,或者在函数内部未使用var声明的变量也属于全局变量. b)全局变量:在所有函数外部定义的变量. eg: 1)     var a = 5,b = 4, ...

  2. 通用js函数集锦<来源于网络> 【二】

    通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...

  3. VC与JavaScript交互(二) --- 调用JS函数

    这一章,我们来动手实践VC调用JS函数. 我们动手写一个HTML,其中包含这样一段JS代码: //[html] <script type="text/javascript"& ...

  4. Js函数function基础理解

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  5. js函数的调用问题

    1.js函数的调用方式有三种.请问以下“二”处的几行代码有什么猫腻? //一 事件调用 btn.onclick=fn; //二 直接调用(window调用) fn(); //自上而下解析到这一行的时候 ...

  6. JS函数和变量

    JS函数和变量  函数: 函数是由事件或者当它被调用时执行的可重复使用的代码块. 是一个独立的代码块,实现特定功能模块. 函数他不进行调用触发的话,不会自己主动执行. 像ATM机一样,不去取钱的话不会 ...

  7. js 函数定义三种方式

    <p>Js 函数定义的三种方式:</p> <br> <p>方式一:function</p> <script type="te ...

  8. 在JS函数中执行C#中的函数、字段

    1.调用字段 cs文件的代码: ; protected void Page_Load(object sender, EventArgs e) { id = ; } js页面的代码: function ...

  9. AS与JS相互通信(Flex中调用js函数)

    转载自http://www.blogjava.net/Alpha/archive/2009/06/27/284373.html Flex中As调用Js的方法是:     1.导入包 (import f ...

  10. js函数大全

    js函数集·字符串(String) 1.声明 var myString = new String("Every good boy does fine."); var myStrin ...

随机推荐

  1. php 无限循环

    什么是无限分类呢?就像windows下新建一个文件夹,在新建的文件夹下又可以新建 一个文件夹,这样无限循环下去,无限分类也是这样,父类可以分 出它子类,子类又 可以分出它的子类,这样一直无限循环下去. ...

  2. (转)【ASP.NET开发】获取客户端IP地址 via C#

    [ASP.NET开发]获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己 ...

  3. em和rem及rem在移动的应用

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <style t ...

  4. 夺命雷公狗---DEDECMS----13dedecms首页的完成

    我们的dedecms搭建起来后直接复制templets的目录复制一份,如下所示: 然后进入templets目录里面,然后再将default里面的东西都给干掉,然后将我们预先准备好的首页放进来,代码如下 ...

  5. LDA-math-认识Beta/Dirichlet分布

    http://cos.name/2013/01/lda-math-beta-dirichlet/#more-6953 2. 认识Beta/Dirichlet分布2.1 魔鬼的游戏—认识Beta 分布 ...

  6. Fatal error: Call to a member function bind_param() on a non-object in

    今天在练习 mysql是出现错误:   Fatal error: Call to a member function bind_param() on a non-object in 解决步骤: 1. ...

  7. Javascript之回调函数(callback)

    1.回调函数定义: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方 ...

  8. 图像处理之常用颜色RGB、灰度值

    128/0/0       深红         255/0/0       红           255/0/255     粉红        255/153/204 玫瑰红       153 ...

  9. VS2010 断点无效肿么办?

    [1]分析原理: 1. 断点无效是因为目标文件和源文件的更新时间不一致, 编译器不认为当前的源文件是目标文件的当前版本. 2. IDE不会关心源文件的编码格式,能读入即可, 另存为Unicode或AS ...

  10. 理解Linux中断 (2)【转】

    转自:http://blog.csdn.net/tommy_wxie/article/details/7425692 版权声明:本文为博主原创文章,未经博主允许不得转载. .内核的中断处理 3.1.中 ...