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,小牛,非喜请喷,谢谢指教!!!

 

posted @ 2016-10-12 16:54  技者  阅读(172)  评论(0编辑  收藏  举报