作者:英雄泪 | 来源:互联网 | 2023-08-29 08:03
函数声明(静态函数)函数声明有个特性就是函数能够函数声明提早hello();functionhello(){console.log(hellojs);}函数表达式(Function
函数声明(静态函数)
函数声明有个特性就是函数能够函数声明提早
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);
}