分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Js函数的三种创建、四种调用

发布时间:2023-09-06 02:13责任编辑:白小东关键词:暂无标签
 1 // 函数的三种创建方法 2 function one(){ ??// 函数声明,不属于任何对象,始终默认为全局对象 3 console.log("第一个函数") 4 //默认有一个return this,返回函数中的内容 5 } 6 one(); ?????//必须调用;可以在函数声明前调用(预处理变异机制) ???????????????????????7 ?8 var fn=function(){ ?????????????????//函数表达式 9 console.log("第二个函数")10 }11 fn(); //必须先声明再调用 ????????????????????????????????12 13 var fun=new Function(console.log("第三个函数")); //构造函数 无需调用,会自调
 1 // 函数的4种调用方式 2 function one(){ ?????????????????????3 console.log("一个函数") 4 } 5 one(); ?//作为一个函数去调用 6 ?7 ?8 var person={ 9 name:"tom",10 age:18,11 speak:function(){12 console.log("English")13 }14 } ??????????????????15 person.speak(); //函数作为对象的方法的调用16 17 18 function num(n1,n2){19 this.number1=n1;20 this.number2=n2;// 构造函数中的this没有任何值21 }22 23 ?var i=new num(3,5);24 ?console.log(i.number1) // 构造函数会创建一个新的对象,新的对象会继承构造函数的属性和方法25 26 27 ?function myFunction(a,b){28 ?return a+b;29 ?}30 ?myFunction.call(this,2,5);31 32 ?var myArry=[2,5];33 ?myFunction.apply(this,myArry); //作为函数方法调用函数 call()和apply()是预定义的函数方法,apply传入的是一个数组,call传入的是参数

js的运行机制问题:(声明提升) 
1、在js中js引擎会优先解析var变量和function定义!在预解析完成后从上到下逐步进行! 
2、解析var变量时,会把值存储在“执行环境”中,而不会去赋值,值是存储作用!例如: 
alert(a); var a = 2; 这时会输出undifiend,意思是没有被初始化没有被赋值! 
这并不是没有被定义,错误了的意思! 
3、在解析function时会把函数整体定义,这也就解释了为什么在function定义函数时为什么可以先调用后声明了!其实表面上看是先调用了,其实在内部机制中第一步实行的是把以function方式定义的函数先声明了(预处理)

Js函数的三种创建、四种调用

原文地址:https://www.cnblogs.com/7qin/p/9606489.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved