怎么理解?一会儿说是字面量定义方式,一会儿又说是构造函数。什么又是实例化??

怎么理解?一会儿说是字面量定义方式,一会儿又说是构造函数。什么又是实例化??

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕星星 2019-01-14 18:59:40

同学可以测试下这段代码的区别:

http://img1.sycdn.imooc.com//climg/5c3c6b660001099b11810705.jpg

结果:

http://img1.sycdn.imooc.com//climg/5c3c6b8e0001bd3f02950191.jpg

  • 提问者 Tammyy #1
    老师,p.say()是什么意思,这里p打印出来是一个对象Person {name: "xm", say: ƒ}
    2019-01-14 22:46:05
  • 好帮手慕星星 回复 提问者 Tammyy #2
    是的呀。p接收到是Person实例化出来的对象,say()是p对象中的方法,对象调用方法就可以使用点的方式调用,也就是p.say().
    2019-01-15 09:39:38
  • 提问者 Tammyy 回复 好帮手慕星星 #3
    老师,构造函数使用this设置属性和方法,就像对象person{} person.name 可以设置属性和属性值,一样原理吗。
    2019-01-15 20:09:09
好帮手慕星星 2019-01-14 17:18:22

首先new Function()是创建函数的,并不是调用函数的。自己可以写一个例子试试。

字面量方式与构造函数的区别是,构造函数中使用this设置属性和方法,而字面量方式中是正常计算代码。

自己可以动手写出来看看。

  • 提问者 Tammyy #1
    new Person() new 加 函数名 加括号。构造函数是这样调用的啊,课程里面这样讲的。 我试过,字面量定义的函数,通过new 加 函数名 加括号 也能调用,为什么???
    2019-01-14 17:35:04
好帮手慕星星 2019-01-14 14:34:40

你好,之前讲的是函数定义的方式,分为字面量和构造函数:

1、function add(){}为字面量方式,定义一个函数体3。

2、new Function(参数1,参数2,…,参数n,函数体),它的本意其实是通过实例化一个Function原型,得到一个数据类型为function的对象,也就是一个函数,也就是老师讲的通过构造函数的形式去定义一个函数。

例如:

http://img1.sycdn.imooc.com//climg/5c3c2ceb0001c2fd09330262.jpg

结果:

http://img1.sycdn.imooc.com//climg/5c3c2d080001d6ee05380167.jpg

本小节中讲解的是构造函数实例化。

定义一个构造函数函数function Person(){},里面的属性或者方法使用this来设置。然后再通过new Person()的方式实例化对象,这种方式叫做构造函数的实例化,这里是一定会返回一个实例化的对象的,也就是接收到的Person对象。

构造函数里面是封装的属性和方法。例如动物有很多共同点,有眼睛,鼻子,嘴巴等,如果每次创建动物的时候,都把这些写一遍,代码量会增多。所以把这些相同的属性和方法封装起来,每次用的时候new实例化一下,调用里面的属性和方法就可以。

例如:

http://img1.sycdn.imooc.com//climg/5c3c2d4700011c3704400191.jpg

http://img1.sycdn.imooc.com//climg/5c3c2d5400012d5b03050088.jpg

这两者是不同的作用,一个是定义,一个是实例化。

祝学习愉快!

  • 提问者 Tammyy #1
    也就是说所有函数都可以用new Function();方式调用了?构造函数和字面量定义的函数的区别主要看调用的方式?
    2019-01-14 16:35:02
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师