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;}