1.函数的声明:
function functionname() { 执行代码 }创建函数的两种方式:
①静态方式:
function functionname(参数列表){ 内容 }②动态方式var 函数名=new Function(参数列表){ 内容 }
2.调用带参数的函数:
function myFunction(var1,var2) { 代码 }在JavaScript中,函数可以嵌套在其他函数里。
如果有同名的参数,则取最后出现的那个值
function f(x,x){ console.log(x); } f(1,2) // 2
3.HTML增加按钮调用函数
<p>点击这个按钮,来调用带参数的函数。</p> <button onclick="myFunction('Harry Potter','Wizard')">点击这里</button> <script> function myFunction(name,job) { alert("Welcome " + name + ", the " + job); } </script>4.带有返回值的函数:
在使用 return 语句时,函数会停止执行,并返回指定的值
注意: 整个 JavaScript 并不会停止执行,仅仅是函数。JavaScript 将继续执行代码,从调用函数的地方。
函数调用将被返回值取代:
function myFunction() { var x=5; return x; }5.函数内的局部变量:
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
只要函数运行完毕,本地变量就会被删除。
局部变量比同名全局变量的优先级高,所以局部变量会隐藏同名的全局变量。
6.this函数的用法:
①调用类自身的变量,方法
②调用构造函数分别给不同的变量赋值(当有多个构造函数时)
7.apply方法和call方法:
apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性.
Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象args:这个是数组,它将作为参数传给Function(args-->arguments)
call:和apply的意思一样,只不过是参数列表不一样.
Function.call(obj,[param1[,param2[,…[,paramN]]]])
obj:这个对象将代替Function类里this对象
params:这个是一个参数列表<script type="text/javascript"> 2 /*定义一个人类*/ 3 function Person(name,age) 4 { 5 this.name=name; 6 this.age=age; 7 } 8 /*定义一个学生类*/ 9 function Student(name,age,grade) 10 { 11 Person.apply(this,arguments); 12 this.grade=grade; 13 } 14 //创建一个学生类 15 var student=new Student("qian",21,"一年级"); 16 //测试 17 alert("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade); 18 //大家可以看到测试结果name:qian age:21 grade:一年级 19 //学生类里面我没有给name和age属性赋值啊,为什么又存在这两个属性的值呢,这个就是apply的神奇之处. 20 </script> 复制代码call实例:
将上面appy代码出换成person.call(this,name,age)
③什么时候用call什么时候用apply:
在给对象参数的情况下,如果参数的形式是数组的时候,比如apply示例里面传递了参数arguments,这个参数是数组类型,并且在调用Person的时候参数的列表是对应一致的(也就是Person和Student的参数列表前两位是一致的) 就可以采用 apply , 如果我的Person的参数列表是这样的(age,name),而Student的参数列表是(name,age,grade),这样就可以用call来实现了,也就是直接指定参数列表对应值的位置(Person.call(this,age,name,grade));
参考:点击打开链接
8.如何在js中构建类:
参考:点击打开链接
9.arguments:
当调用函数时,传入的实参个数超过函数定义时的形参个数时,是没有办法直接获得未命名值的引用。
这时,标识符arguments出现了,其指向实参对象的引用,实参对象是一个类数组对象,可以通过数字下标来访问传入函数的实参值,而不用非要通过名字来得到实参。
function go(x){ console.log(arguments[0]); console.log(arguments[1]); } go(1,2); //1 //2arguments可以看做类似于储存形参的数组,他有着length属性
10.eval命令
eval命令的作用是,将字符串当作语句执行。
JS随笔:函数
猜你喜欢
转载自blog.csdn.net/qq_40259565/article/details/80260156
今日推荐
周排行