function函数

一:function函数基础理解

   函数实际上是对象,每个函数实际上都是 function类型的实例。而且与其他引用类型一样具有属性和方法。函数名实际上是一个指向内存堆中某个函数对象的指针。

定义函数的方式

1.函数声明:

    function sum(num1,num2){
    return num1+num2;            
    }

2.函数表达式:

   var sum=function(num1,num2){
   return num1+num2;
   };

      定义了一个变量sum并将其初始化为一个函数,注意到function关键字后面并没有函数名,这是因为在使用函数表达式定义函数,没必要使用函数名,通过变量 sum即可引用函数。还要注意函数末尾有个分号,就像声明其他变量一样。

  Arrow Function(箭头函数):

箭头函数,顾名思义就是用箭头(=>来定义的函数,不会用到关键字‘function’),例如:

let sum = (a, b)=> {return a + b;}

效果等同于:

var sum = function(a, b){return a + b;} 

但是,事实上上面两个function存在很多不同。

箭头函数的定义形式有很多种,具体的有:

1: 什么情况下都可以型

let sum = (a, b)=>{return a + b;}

这种是最常用,最通用的形式。

2: 只有一个参数型

let self = num1 => {return num1;}

可以看到相对第一种定义的区别是:没有用()包围参数. 这种形式只可以在这种情况下用。

3: 没有参数型

let functionA = ()=> {return 'hehe';}

当没有参数时,必须要有'()'。

4: 两个参数及其以上型


let sum = (a, b) => {return a + b;}

当有两个及其以上的参数时,也必须要用‘()’把参数括起来。

5:没有return&&没有{}

let sum = (a, b) => a + b;

你可以同时不给return关键字和{},效果`等同`于上面的第4种情况

6: 没有return && 有{}

let sum = (a, b)=> {a + b;}

这种情况不等于第5种,这种情况下`'a+b'`并不会作为这个函数的返回值,如果你调用这个函数,得到的结果`undefined’`

7: 有return && 没有{}

let sum = (a, b)=> return a + b;

(注明,以上的第5,6,7点针对的是函数方法体的部分,不论函数参数是几个,结果没有区别;同样的,第2,3,4点针对的是函数的参数部分,不论函数的方法体怎么写,对结果没有影响。)

constructor构造函数属性:

定义和用法

constructor 属性返回对创建此对象的数组函数的引用。

语法

object.constructor

例子 1

我们将展示如何使用 constructor 属性:

<script type="text/javascript">

var test=new Array();

if (test.constructor==Array)
{
document.write("This is an Array");
}
if (test.constructor==Boolean)
{
document.write("This is a Boolean");
}
if (test.constructor==Date)
{
document.write("This is a Date");
}
if (test.constructor==String)
{
document.write("This is a String");
}

</script>

输出:

This is an Array

例子 2

我们将展示如何使用 constructor 属性:

<script type="text/javascript">

function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}

var bill=new employee("Bill Gates","Engineer",1985);

document.write(bill.constructor);

</script>

输出:

function employee(name, job, born)
{this.name = name; this.job = job; this.born = born;}
原文地址:https://www.cnblogs.com/ljming/p/9940260.html