js之初识函数
1.关于函数
函数属于对象,却是对象里的一等公民,有着至高无上的地位。跟普通对象一样,定义属性和方法,拥有原型对象prototype。还可以进行调用并执行自身的代码块。
function fn(){} fn.attr = 'value'; fn.method = function(){ console.log(this.name); } fn.prototype = { name: 'calvin', getName: function(){ console.log(this.name); } }
2.函数的作用域
当在最外层进行定义变量时,该变量属于全局对象window。全局变量在任何位置都可进行访问。而在函数里面进行定义,变量的作用域只属于函数内部,在函数外部无法进行访问。
var a = 3; function fn(){ var a = 23; var b = 34; } console.log(a); //3 console.log(b); //b is not define
3.函数的参数
函数调用时传入函数内部的参数,尽在函数内部的作用域内生效(属于局部变量);函数调用时可通过访问arguments得到实参(实际参数)的集合;当实参数量少于形参时,形参后面的参数默认undefined;当实参多余形参个数时,多出的参数无效。
function sum(a,b,c){ console.log(arguments);//实参类数组,具有length属性 return a + b + c; } sum(1,2,3,4);//6 sum(1,2);//NAN 数字加undefined为NAN
4.函数的this
this在函数内部指向该函数所属的对象。在全局作用域定义的变量,this指向window。
var a = 3; function fn(){ console.log(this.a); } fn();//3 此时this指向window fn.a = 5; fn.getName = function(){ console.log(this.a); } fn.getName();//5 此时this指向getName所属对象 fn
over,小牛,非喜请喷,谢谢指教!!!