问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

new关键字具体做了什么?

发布网友 发布时间:2023-03-26 03:58

我来回答

1个回答

热心网友 时间:2023-10-20 12:51

用 var anObject = new aFunction() 形式创建对象的过程实际上可以分为三步:

第一步是建立一个新对象;

第二步将该对象内置的原型对象设置为构造函数prototype引用的那个原型对象;

第三步就是将该对象作为this参数调用构造函数,完成成员设置等初始化工作。

其实javascript的new关键字只不过做了五件事情:

1.创建Object

2.查找class的prototype上的所有方法、属性,复制一份给创建的Object(注意,如果prototype上有属性是function或者数组或者Object,那么只复制指针)

3.将构造函数classA内部的this指向创建的Object

4.创建的Object的__proto__指向class的prototype

5.执行构造函数class

// 定义类 类名字是 classA

functionclassA(){

this.b=1;

}

classA.prototype.b=44;

classA.prototype.show =function(){

alert(this.b);

};

// 用new实例化

varb =newclassA();

b.show();

// 用函数实例化

functionnewClass(cls,args){

varobj = {};

for(varpincls.prototype)

obj[p] = cls.prototype[p];

obj.__proto__ = cls.prototype;

cls.apply(obj,args||[]);

returnobj;

};

vark = newClass(classA);

k.show();
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
笔记本wifi能够联网,但是台式机插网线网络很差 为什么这个wifi就针对一台电脑卡。 电脑连wifi看电视很卡台式电脑连接无线wifi特别卡 为什么本身台式网速特别快,可是用笔记本wifi的网速就特别慢呢... wifi很快电脑很慢是怎么回事电脑和手机连接同一个WiFi手机网速快但是... ...6个梨,要把这些梨全部放在盘子里,至少需要多少个盘子? 看图列算式,一共有多少个梨? 列式:__ 哪些原因会导致长白头发 头上白发特别多是体内缺什么呢还是病还是别的原因 ACL访问控制列表应用 折现现金流量计算公式 《马诗》中诗人借写马来抒发自己什么的愤概和渴望什么的抱负? 梦见自己去了妓院的预兆 梦见被人拦住跑进妓院躲避的预兆 联想笔记本怎么打开bios设置 联想笔记本怎样打开bios设置 奥迪a3备胎工具在哪 奥迪a3备胎怎么取出 奥迪a3备胎如何取出来 做法,怎么做,如何做,家常雪菜豆腐汤的做法大全视频 我又一个唐代铜镜 。。保存完好。直径是9.7海兽葡萄的大约多少钱,,谢谢大家,给个建议 古代铜镜埋什么地方的 铜镜怎样保存好? 和好友合租是什么感觉? 成长的过程中如何和好友相处 和好友关系淡了怎么办 如何与好友相处? 离合器半联动操作方法是什么? 半踩离合器的正确踩法是怎样 半自动洗衣机洗桶怎么拆下来 javascript中new后面可以加什么,分别是什么意思,谢谢啦 JS中new详解 白菊、黄菊和野菊,哪种菊花清热解毒的效果最好 电脑辞职什么意思 请问一下离职和辞职区别是什么? 成都保利中环广场二期值得买吗 苹果手机哪款最值得入手? 西门子808d系统诊断界面怎么进入查看啊 西门子802D加工中心如何语言切换 魅族MX双核和四核的区别? 怎么去办护照呢? 关于电脑的英语谜语 电脑是现代科技产物,人们都发明了哪些有关于电脑的谜语 2022年的新年祝福语? iPhone5S/iPhone6/iPhone6 Plus微信运动怎么使用 祺福的寓意 中国农业银行股份有限公司沭阳新阳支行怎么样? 梦见与人相亲的预兆 梦见我和别人相亲的预兆 做微商没人买东西咋办