js中的xml2json函数_JS中的构造函数

今天,我们继续js中函数内容,今天我们讲的是js中的构造函数。

构造函数相对来说是比较重要的,后期编程中构造函数的身影随处可见。

a964cd2c8af178dd4c832bc5242be87c.png

补充:对象中的属性,如果是一个函数,也可以称该属性为这个对象的方法。

用于创建对象的函数

function person(name,age,sex){ return { name: name, age: age, sex: sex, sayHello: function(){ console.log(`这是${name},今年${age}岁,性别${sex}`); } } } var person1 = person('张三',18,"男"); person1.sayHello(); var person2 = person('李四',20,"男"); person2.sayHello();
75ea6ba5fd88909c1ee59b9b029bdf68.png

用函数创建对象,可以减少繁琐的对象创建流程。

1、函数返回一个对象,如上图所示。

2、构造函数

格式:new 函数名();

如果,使用上面的格式创建对象,则该函数就叫做构造函数。

(一)、构造函数命名方式一般为大驼峰命名法。

(二)、构造函数内部会自动创建一个对象,this指向新创建的对象,并自动返回该对象。

(三)、构造函数中如果出现返回值,有两种情况,如果返回的是原始数据类型,则直接忽略,如果返回的是一个对象,则使用return返回的结果。

(四)、所有的对象,最终都是通过构造函数创建的。

58f60d2c8e9022b40c4b2e7b541bbf33.png

构造函数创建对象

如果return返回一个原始数据类型,那么直接忽略,如下图:

7b4c6b5afbe00f4d1a6d08971f50fd7a.png

如果返回的是一个对象,则使用return返回的结果。如下图:

4a9eee587d73009926e017c6bb04f130.png

因为使用返回的对象,所以,这里会打印出name:123,age:12,而返回的对象中没哟sayHello()方法,所以会报错。

new target

该表达式在函数中使用,返回的是当前的构造函数;但是,如果,函数不是通过new关键字创建的,则返回undefined。

7f23346e921fb8408f823033ea7eb363.png

作用:通常可以用于判断某个函数是否是通过new在创建。

展示代码如下:

function Person(name, age, sex) { var temp = this.sayHello = function () { console.log(`这是${name},今年${age}岁,性别${sex}`); }; if (new.target == Person) { this.name = name, this.age = age, this.sex = sex, this.sayHello = temp; } else { return { name, age, sex, sayHello: temp, } } } var person1 = new Person('张三', 18, "男"); person1.sayHello(); var person2 = Person('李四', 20, "男"); person2.sayHello();

这里Person1是通过new关键字创建的,而Person2是直接调用的,但代码中,我们通过处理,是都可以打印出来;

好啦,今天就到这里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值