6-JS函数(二)
函数
函数的实参和形参
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函数(二)的更多相关文章
- (八)js函数二
1.变量 a)局部变量:在所有函数内部定义的变量,或者在函数内部未使用var声明的变量也属于全局变量. b)全局变量:在所有函数外部定义的变量. eg: 1) var a = 5,b = 4, ...
- 通用js函数集锦<来源于网络> 【二】
通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...
- VC与JavaScript交互(二) --- 调用JS函数
这一章,我们来动手实践VC调用JS函数. 我们动手写一个HTML,其中包含这样一段JS代码: //[html] <script type="text/javascript"& ...
- Js函数function基础理解
正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...
- js函数的调用问题
1.js函数的调用方式有三种.请问以下“二”处的几行代码有什么猫腻? //一 事件调用 btn.onclick=fn; //二 直接调用(window调用) fn(); //自上而下解析到这一行的时候 ...
- JS函数和变量
JS函数和变量 函数: 函数是由事件或者当它被调用时执行的可重复使用的代码块. 是一个独立的代码块,实现特定功能模块. 函数他不进行调用触发的话,不会自己主动执行. 像ATM机一样,不去取钱的话不会 ...
- js 函数定义三种方式
<p>Js 函数定义的三种方式:</p> <br> <p>方式一:function</p> <script type="te ...
- 在JS函数中执行C#中的函数、字段
1.调用字段 cs文件的代码: ; protected void Page_Load(object sender, EventArgs e) { id = ; } js页面的代码: function ...
- AS与JS相互通信(Flex中调用js函数)
转载自http://www.blogjava.net/Alpha/archive/2009/06/27/284373.html Flex中As调用Js的方法是: 1.导入包 (import f ...
- js函数大全
js函数集·字符串(String) 1.声明 var myString = new String("Every good boy does fine."); var myStrin ...
随机推荐
- Socket get http request
package wuyubao.firstsample; import java.io.BufferedReader; import java.io.IOException; import java. ...
- PHP浮点数的一个常见问题的解答 (转载 http://www.laruence.com/2013/03/26/2884.html)
不过, 我当时遗漏了一点, 也就是对于如下的这个常见问题的回答: <?php $f = 0.58; var_dump(intval($f * 100)); //为啥输出57 ?> 为啥输出 ...
- Android 5.0新特性了解(二)----RippleEffect
1.本文介绍的是Android5.0中其中一个炫酷的效果,点击水波纹扩散效果( RippleEffect),以下介绍的实现方式都是调用Android5.0的新API,并非自定义实现,所以支持在Andr ...
- MSSQL 判断实例中是否存在某种表
执行语句 SELECT 'SELECT * FROM '+Name+'..SysObjects Where XType=''U'' and name=''tab_scartrim'' ORDER BY ...
- Java -verbose:gc 命令
Java -verbose:gc 中参数-verbose:gc 表示输出虚拟机中GC的详细情况. [Full GC 168K->97K(1984K), 0.0253873 secs] 解读如 ...
- 夺命雷公狗---Thinkphp----13之前台的头尾分离和导航分离
我们在实际的开发中往往网站的头尾都是分离开来的,而且tp这点做的也很人性化,他给我们留了一个include标签可以直接引入网站的头尾部分. 我们要做的网站当然也不例外,头尾一样分离开来: 我们先用浏览 ...
- ThinkPHP讲解(五)——数据库配置及Model数据模型层、查询
数据库配置 在TP框架中要进行连接数据库操作,要进行配置 要在convertion.php中找到“数据库配置”,并复制到项目配置文件config.php中 Model模型层制作 model:数据库中每 ...
- 在线快速生成 CSS Sptite 的网站
Spritepad http://spritepad.wearekiss.com/ 这个好,虽然没用过,先收起来再说.
- 数据库日期格式为int型时存取格式
存入当前日期:time() 取出并转化为日期格式:date('Y-m-d H:i:s',strtotime($time)); 最好在前面加上这句: date_default_timezone_set( ...
- 表数据文件DBF的读取和写入操作
import sys import csv import struct import datetime import decimal import itertools from cStringIO i ...