扫码关注官方订阅号
我记得这个不是构造函数啊,为什么this、new这些都跟构造函数用法一样?
javascript 中的任何函数只要用 new 关键字调用,它都可以被称作 构造函数。
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中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
javascript 中的任何函数只要用
new关键字调用,它都可以被称作构造函数。当使用 new 关键字调用函数时,函数内部会隐式地声明一个对象,然后把这个对象赋给 this,最后再隐式地返回 this. 使用 new 关键字调用楼主的 book 方法时,就相当于以下过程。
这里的 o 其实就是我们平时看到的 this 对象。
你理解错了构造函数的概念。
实际上,js里不应该有‘构造函数’这一说,而应该理解为函数的构造方法。意思是,任何函数都可以拿来
new一个,任何函数都可以叫做‘构造函数’。你在写所谓‘构造函数’的时候,有发现它和普通函数有什么区别吗,并没有吧,他们就是普通函数。以上,es6箭头函数除外。
js里面每个函数都是相当于一个构造函数(除了真ES6箭头函数)。
哎,神奇的js!