javascript中new操作符的原理
javascript中new操作符的原理
javascript中的new是一个语法糖,对于学过c++,java 和c#等面向对象语言的人来说,以为js里面是有类和对象的'区别的,实现上js并没有类,一切皆对象,比java还来的彻底
new的过程实际上是创建一个新对象,把新象的原型设置为构造器函数的原型,在使用new的过程中,一共有3个对象参与了协作,构造器函数是第一个对象,原型对象是二个,新生成了一个空对象是第三个对象,最终返回的是一个空对象,但这个空对象不是真空的,而是已经含有原型的引用(__proto__)
步骤如下:
(1) 创建一个空对象obj
(2) 让空对象的__proto__(IE没有该属性)成员指向了构造函数的prototype成员对象
(3) 使用apply调用构造器函数,this绑定到空对象obj上。
(4) 返回空对象obj
可以自己写个函数替代使用new也是完全可以的,示例代码如下:
function NEW_OBJECT(Foo){var obj={};obj.__proto__=otype;obj.__proto__tructor=Foo;y(obj,arguments)return obj;}
以上这篇浅谈javascript中new操作符的原理就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
-
把Word转换成PPT的办法
我们通常用Word来录入、编辑、打印材料,而有时需要将已经编辑、打印好的材料,做成PowerPoint演示文稿,以供演示、讲座使用。如果在PowerPoint中重新录入,既麻烦又浪费时间。如果在两者之间,通过一块块地复制、粘贴,一张张地制成幻灯片,也比较费事。其实,我们可以利用Po...
-
屏蔽电脑硬盘坏道的方法
硬盘,港台称之为硬碟,是电脑主要的存储媒介之一,下面整理了一些屏蔽电脑硬盘坏道的方法,希望对大家有所帮助!1、电脑硬盘厂家对硬盘坏道进行屏蔽。一般厂商生产出的新硬盘本身也并不是十全十美,在硬盘出厂的时候往往就会对硬盘坏道进行厂家检测,如果硬盘的坏道数量...
-
卧室怎么设计才好看
卧室作为人们修身养息的重要场所,在装修设计的时候,并不是随个人喜好决定的,而是以舒适为主。舒适可以说是卧室设计的最基本的原则。而这种舒适感,首先表现为实用性,然后才是装饰性。这里的实用性包括休息舒适、收纳强大、家具摆放合理,而装饰性则包括了卧室的色调搭...
-
论电影制作投资的困境与重要性
眼下的国内市场,股票崩盘、资本寒冬,仿佛唯有电影票房不断井喷,而电影行业也确实正在迎来更热的一波投资浪潮。小编特意撰写此文是为了是展示电影投资的风险特性,以及探讨电影基金背后的投资逻辑。1、挽救迪士尼的基金今日的娱乐巨头迪士尼在八十年代时,其实是好莱...