javascript - 这不是对象字面量函数吗?为什么要new初始化?
淡淡烟草味
淡淡烟草味 2017-07-05 10:52:40
[JavaScript讨论组]

我记得这个不是构造函数啊,为什么this、new这些都跟构造函数用法一样?

淡淡烟草味
淡淡烟草味

全部回复(3)
学习ing

javascript 中的任何函数只要用 new 关键字调用,它都可以被称作 构造函数

当使用 new 关键字调用函数时,函数内部会隐式地声明一个对象,然后把这个对象赋给 this,最后再隐式地返回 this. 使用 new 关键字调用楼主的 book 方法时,就相当于以下过程。

function Book(id, bookname){
    var o = new Object();
    o.id = id;
    o.bookname = bookname;
    return o;
}
var b = Book(123,'javascript高级程序设计');

这里的 o 其实就是我们平时看到的 this 对象。

女神的闺蜜爱上我

你理解错了构造函数的概念。

实际上,js里不应该有‘构造函数’这一说,而应该理解为函数的构造方法。意思是,任何函数都可以拿来new一个,任何函数都可以叫做‘构造函数’。你在写所谓‘构造函数’的时候,有发现它和普通函数有什么区别吗,并没有吧,他们就是普通函数。

以上,es6箭头函数除外。

習慣沉默

js里面每个函数都是相当于一个构造函数(除了真ES6箭头函数)。
哎,神奇的js!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号