javascript|javascript中new的实现原理和方式
- 函数和构造函数的区别
2) 普通函数如果没return返回的就是undefined构造函数没有返回的也是对象(作为实例)
3)执行的时候都会产出私有作用域
4)this指向 , 普通函数谁执行的this就是谁 , 构造函数里面的this是返回来的实例
- new关键词使用(通过new一个构造函数生成多个实例) , 具体new做的是:
2)第二步:对象原型链指向 ,
3)第三步:把构造函数里面的this指向对象
3)第四步:返回对象 , 如果没return也会返回一个对象
javascript 中new的实现原理
// 自己实现一个new方法
function newFactory(Fn) {
// 创建对象
const obj = {
// 原型链指向构造函数的原型链
obj.__proto__ = Fn.prototype
// 函数执行this指向到obj
const res = Fn.apply(obj);
// 如果构造函数执行返回对象就用对象 , 否则就返回obj
return ({).toString.call(res) === '[object Object
' ? res : obj;
var DemoFn =function(){
newFactory(DemoFn) //返回一个对象(实例)
【javascript|javascript中new的实现原理和方式】是不是实现了一个new啊 , 使用和原理你了解多少呢?
推荐阅读
- 智能手机那点事|米粉:本指望靠超大杯降价,现在或很难实现,小米10Pro被曝停产
- 号外News|落地后就销声匿迹,原因令人心疼,中国首位进入太空的女航天员
- 摄像头|华为实现真全面屏,荣耀Magic3将发布,HMS进度或推进品牌独立
- Java|Java项目搜索功能的实现
- 产业气象站|实战:通过 Component 实现多地域部署容灾,Serverless
- NewsHub社区|大学生换机二选一准没错,不到2K也能买到的精品5G手机
- 士豆不土|外卖之路让王兴?一言难尽,而马化腾实现双收!,原创
- 万聪教育|私域流量的5步转化流程,实现高客单价转化,
- IT之家|Q3 iPhone收入实现小幅增长,多亏了iPhone SE 2,苹果2020
- 炎龙说数码|自带端口映射,花生棒搭建私人云相册实现远程备份,无需公网IP