js函数进修

函数声明(静态函数)

函数声明有个特性就是函数能够函数声明提早

hello();
function hello(){
console.log('hello js');
}

函数表达式(Function expressions)

var hello2 = function(){
 console.log('hello2 js');
}
hello2();

这类体式格局定名,没有函数声明提早,这个体式格局也是自身比较喜好用的体式格局。

匿名函数( anonymous)

(function(){
    console.log('message');
})()

也能够直接传入变量,jQuery源码用的比较的多,用匿名函数的优点就是能够削减定名的争执,省的为了只实行一次的函数你还要去定名

(function(e){
    console.log(e);
})(2)

自动实行的其他的写法

var auto = (function(){
     console.log('auto message');
})() 

var auto = (function(){
    console.log('auto message2');
}())

回调函数(callback)

就是把函数当作变量,这个算是js中比较迥殊的处所,nodejs的异步回调的大致就是那样

function person(callback,name,age){
    callback(name,age);
}
function output(name,age){
    console.log(name+':'+age);
}
new person(output,'zs',18);

递归函数

关于递归,这个日常平凡不敢去太多的运用,当时进修java的时刻就很转,也就不尴尬自身了。简朴的说就是自身挪用自身:

function add(n){
    if(n<=1){
        return 1;
    }else{
        return n+add(n-1)
    }
}
// var i= add(4);
console.log(add(4));

组织函数

  • 组织函数首字母大写
  • this用法,指向自身,这个比较复杂,今后总结好了,弄邃晓了再细说
  • 闭包题目也是比较头痛的题目,留在今后。会形成内存斲丧

组织函数的三部曲:

  • 组织要领
  • 定义属性
  • 原型法定义函数,如许比较的节约内存
  • 函数的继续,call,apply(用在通报数组)

函数的继续:

function Person(name,age){
    this.name=name;
    this.age=age;
}

Person.prototype.out=function(){
    var self=this;
    console.log(this.name+':'+this.age);
}

function Student(name,age,id){
    // Person.call(this,name,age);
    Person.apply(this,[name,age]);//或是用apply都行
    this.id=id;
}
Student.prototype.output=function(){
    var self=this;
    console.log(this.name+':'+this.age+';'+this.id);
}

new Person('lh',18).out();
new Student('KK',18,'XUESHENG').output();

函数的多态:

函数的重载:

主如果经由过程argument.length离别挪用的,没有怎样用过

function f(x){}
function f(x,y){}
function f(x,y,z){}

总结最优的定名函数要领:

用组织要领天生成员变量,用原型法天生成员要领,削减内存的斲丧

function Person(name,age){
    this.name=name;
    this.age=age;
    this.say();
    // 如许也行(组织要领分派成员要领),比较喜好原型法组织函数
    this.say=function(){
        console.log(name+age);
    }
}
Person.prototype.say=function(){
    console.log(name+age);
}
    原文作者:黑色杜克
    原文地址: https://segmentfault.com/a/1190000002983180
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞