JavaScript函数的几种定义方式(个人感觉挺全乎)
2020-08-11 07:19
253 查看
javascript定义的函数的几种方式
归纳一下函数定义的几种方式
一、函数的组成:函数名+函数体
(1).使用function关键字定义函数–具有优先级,优先将function关键字定义的函数优先执行
function functionName(arg0, arg1 ,..., argN){ statements } 函数的调用:functionName()
(2).使用函数表达式的形式定义函数(即将匿名函数复制给变量)
var variable = function(arg0, arg1 ,..., argN){ statements } console.log(typeof variable); //function 函数调用:variable();
(3).使用new Function构造函数定义函数
1.构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯首字母大写
2.构造函数和普通函数的区别在于,调用方式不一样。作用也不一样(构造函数用来新建实例对象)
3.调用方式不一样。
a.普通函数的调用方式:直接调用person()
b.构造函数的调用方式:需要使用new关键字来调用new Person()
4.构造函数的函数名与类名相同:Person()这个构造函数,Person即是函数名,也是这个对象的类名
5.内部使用this来构造属性和方法
function Person(age,){ this.age = age; this.name = name; this.sex = sex; this.sayHi = function(){ alert("aaa") } } let person = new Person(18,"zs","男") console.log(person.name) // zs
6.构造函数的执行流程
A、立刻在堆内存中创建一个新的对象
B、将新建的对象设置为函数中的this
C、逐个执行函数中的代码
D、将新建的对象作为返回值
7.普通函数例子:因为没有返回值,所以为undefined
//普通函数 function person(){ } let per = new person() console.log(per) //undefined
7、构造函数例子:构造函数会马上创建一个新对象,并将该新对象作为返回值返回
function Person(){ } let per = new Person() console.log(per) //"[Object Object]"
8、用instanceof 可以检查一个对象是否是一个类的实例,是则返回true
所有对象都是Object对象的后代,所以任何对象和Object做instanceof都会返回truefunction Person(age){ this.age = age } let per = new Person() console.log(per instanceof Person)
(4).箭头函数()=>{}
语法:
(参数列表)=>{ //函数体 }
1.参数只有一个括号可以省略,参数多个必须写括号
2.只包含一个表达式花括号可以省略还有return,包含多个不可以省略
3.箭头函数的this指向为父作用域的this,不是调用时的this,call,apply,bind都改变不了
4.普通函数的this指向永远是谁调用了就指向谁
5.箭头函数不能作为构造函数,不能使用new关键字
6.箭头函数没有原型属性
(5).自执行函数
语法:
( function(形参){ } )(实参)
自己调用自己
(6).匿名函数
语法:
function(){ console.log("111") }
匿名函数无法自己运行,会报错因为语法问题,解决方法如下
( function(){ console.log("111") })() // 直接为自执行函数
应用场景:
1.给元素添加事件的时候 2.对象的方式 3.函数表达式 4.回调函数 5.作为return的返回值相关文章推荐
- JavaScript函数定义的几种方式
- JavaScript函数定义的三种方式及其调用
- 小强的HTML5移动开发之路(40)——jqMobi中实践header定义的几种方式
- Java - XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
- Spring Boot 定义系统启动任务,你会几种方式?
- 关于Spring声明性事务的几种定义方式
- JavaScript中定义对象的几种方式(JavaScript中没有类的概念,只有对象)
- XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
- JS函数的几种定义方式分析
- 几种Web通信方式的概念定义
- javascript定义函数的几种方式
- js中定义变量的几种方式
- 继承泛型结构类的几种方式,泛型方法的定义和泛型中通配符的使用
- XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
- 简要描述 JavaScript 中定义函数的几种方式
- 对js对象定义几种方式的理解
- 详解VUE 定义全局变量的几种实现方式
- JavaScript函数,语法,定义方式
- 枚举个人感觉最好用的方式
- JavaScript函数笔记-函数定义的三种方式