JavaScript函数与构造函数

目录

JS函数

构造函数

总结:


JS函数

概念:

        函数是被设计为执行特定任务的代码块,函数会在某代码调用它时被执行。函数由参数return返回值组成。参数分为形参和实参,形参就是函数定义时用来接收实参的值(形参名字自己起的),实参就是调用函数时,这个函数所接收到的真实的值函数的返回值会返回给函数的调用者

创建方式:

        1.命名函数(这里的调用是可以放到函数定义之前的,也就是function fun()的上面调用,因为会有函数提升,这个下篇细说)

function fun() {
  console.log("我被调用啦");
}
// 函数调用
fun() //我被调用啦

        2.匿名函数

        2.1.表达式方式创建函数

var fun = function() { /* 这是个匿名函数function,只不过把这个函数赋给了变量fun */
  console.log("我被调用啦");
}
//不可在函数定义之前调用
fun()//我被调用啦

         2.2.自调用函数(一次性函数,声明的时候就会调用)

(function(){
  console.log("我被调用啦");
})();

        3.构造函数创建(基本不咋用,了解就行)

// 函数名             参数1,参数2...函数体(参数都得是字符串形式)
var fun = new Function("a","b","console.log(a+b)")
fun(1,2)

构造函数

概念:

        构造函数是一种特殊的函数,与new一起使用,是用来生成实例对象的函数。

        好,那么问题来了,什么是实例对象?咱先分开看

对象:是一个具体的事物,它的成员由属性方法组成。

实例:简单来说,人是一个类,那我就是人的实例。熊是动物的实例。也就是说实例是类的真实对像。放一个经典代码

var person1 = new Object()
var person2 = {}

总结来说,实例person1就是咱常说的new出来的一个东西但也是个对象,对象person2就是拥有属性和方法的无序集合。

对象不一定是实例,但实例一定是对象。

回到构造函数。先创建一个构造函数。

function Bear() { //首字母大写,为了区分普通函数
  this.name = 'wisdom'//属性
  this.shout = function() { //方法
    console.log("吼");
  }
}

注:构造函数的属性和方法前必须加this关键字,指代要生成的对象。因为在代码块执行之前,会在私有作用域开辟新的堆内存,构造函数的执行体this会指向这个堆。代码执行完毕后,会把这个堆内存地址返回。然后开始创建Bear类的实例,让this指向这个实例,this.name = 'wisdom'就是再给这个实例设置私有属性。

构造函数的调用

var a = Bear()
var b = new Bear()
console.log(a);//undefined
console.log(b);//Bear { name: 'wisdom', shout: [Function] }

所以,new关键字就是执行这个构造函数,它会返回一个对象

构造函数的return

1.return this.boo

function Bear() { //首字母大写,为了区分普通函数
    this.boo = true//属性
    return this.boo
  }
  var a = new Bear()
  console.log(a);

 2.return对象(返回对象)

let bear = {
    name : "wisdom"
  }
  function Bear() { //首字母大写,为了区分普通函数
    this.boo = true//属性
    return bear
  }
  var a = new Bear()
  console.log(a);

 3.不写return就返回实例化对象

总结:

        1.构造函数可以通过new创建多个实例对象

        2.构造函数里面的属性或方法前要加this

        3.构造函数可以不需要return就能返回实例化对象

个人学习思考总结,如有不对,请及时指出,欢迎大家讨论

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值