关于new

关于new

看到同学调用都需要new,是为什么? 然后我看了老师的解释:

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


我又有点搞混了 ,构造函数和普通的函数有什么区别?  什么时候要new什么时候不要new?

<!DOCTYPE html>

<html>



<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>



<body>

    <script type="text/javascript">

        //补充代码

        function Test({ Chinese, math = 100, English }) {

            console.log('Score: Chinese=' + Chinese + ' Math=' + math + ' English=' + English);

        }

        let mytest = new Test({

            English: 1,

            Chinese: 10

        });

    </script>

</body>



</html>


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

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

3回答
好帮手慕久久 2020-10-07 12:27:02

同学你好,问题解答如下:

“实例化对象上可以添加属性和方法,也可以访问到函数的原型对象上的属性”这句话是指,如果使用new实例化一个构造函数,那么会得到一个实例对象,该对象上可以使用this添加属性和方法,并且可以访问到该实例对象原型上的属性和方法,例如下面的例子(认真看注释):

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

如果不用new实例化,那么上图中的变量obj就不是一个实例对象,也就获取不到实例的属性、方法以及原型对象上的属性了,如下:

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

同学将上面的例子敲一下,理解一下。

祝学习愉快!

好帮手慕慕子 2020-09-30 10:00:47

同学你好,对于你的问题解答如下:

  1. 是的,构造函数和普通函数的区别就是:调用方式不同,例如有一个函数A,调用方式为A(), 那么这个函数就是普通函数。如果调用方式为new A(), 那么这个函数就是构造函数。

  2. 如果需要实例化一个对象,那么调用函数时就添加new,如果不需要实例化对象,调用函数时就不用添加new。

  3. 使用new的好处简单理解就是可以实例化一个对象。

    实例化对象上可以添加属性和方法,也可以访问到函数的原型对象上的属性。如果对这一块不是很了解,可以回顾下前面的js面向对象课程中冠以继承的讲解,这里就介绍了使用new实例化一个对象后,可以实现的具体功能。

    https://class.imooc.com/course/791 

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

  4. 添加new和不添加new的区别就是:是否实例化一个对象。示例:

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

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

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 陈立天 #1
    老师回答的:“实例化对象上可以添加属性和方法,也可以访问到函数的原型对象上的属性。” 如果不用new 就添加不了属性和方法还有访问不到函数原型对象上的属性了吗?
    2020-10-02 10:16:48
提问者 陈立天 2020-09-29 20:22:20

是不是普通函数和构造函数的区别就是在调用的时候有没有用new一个实例化对象的区别?  那么这里new有什么好处 和不new的区别是什么?

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

在线咨询

领取优惠

免费试听

领取大纲

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