JavaScript中new操作符有什么用
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关JavaScript中new操作符有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。js模拟new操作符的实现这个问题如果你在掘金上搜,你可能
千家信息网最后更新 2026年11月03日JavaScript中new操作符有什么用
这篇文章给大家分享的是有关JavaScript中new操作符有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
js模拟new操作符的实现
这个问题如果你在掘金上搜,你可能会搜索到类似下面的回答:
说实话,看第一遍,我是不理解的,我需要去理一遍原型及原型链的知识才能理解。所以我觉得MDN对new的解释更容易理解:
new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。new 关键字会进行如下的操作:
创建一个空的简单JavaScript对象(即{});
链接该对象(即设置该对象的构造函数)到另一个对象 ;
将步骤1新创建的对象作为this的上下文 ;
如果该函数没有返回对象,则返回this。
接下来我们看实现:
function Dog(name, color, age) { this.name = name; this.color = color; this.age = age;}Dog.prototype={ getName: function() { return this.name }}var dog = new Dog('大黄', 'yellow', 3)上面的代码相信不用解释,大家都懂。我们来看最后一行带new关键字的代码,按照上述的1,2,3,4步来解析new背后的操作。
第一步:创建一个简单空对象
var obj = {}第二步:链接该对象到另一个对象(原型链)
// 设置原型链obj.__proto__ = Dog.prototype
第三步:将步骤1新创建的对象作为 this 的上下文
// this指向obj对象Dog.apply(obj, ['大黄', 'yellow', 3])
第四步:如果该函数没有返回对象,则返回this
// 因为 Dog() 没有返回值,所以返回objvar dog = objdog.getName() // '大黄'
需要注意的是如果 Dog() 有 return 则返回 return的值
var rtnObj = {}function Dog(name, color, age) { // ... //返回一个对象 return rtnObj}var dog = new Dog('大黄', 'yellow', 3)console.log(dog === rtnObj) // true接下来我们将以上步骤封装成一个对象实例化方法,即模拟new的操作:
function objectFactory(){ var obj = {}; //取得该方法的第一个参数(并删除第一个参数),该参数是构造函数 var Constructor = [].shift.apply(arguments); //将新对象的内部属性__proto__指向构造函数的原型,这样新对象就可以访问原型中的属性和方法 obj.__proto__ = Constructor.prototype; //取得构造函数的返回值 var ret = Constructor.apply(obj, arguments); //如果返回值是一个对象就返回该对象,否则返回构造函数的一个实例对象 return typeof ret === "object" ? ret : obj;}感谢各位的阅读!关于"JavaScript中new操作符有什么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
对象
函数
原型
大黄
实例
操作符
参数
方法
步骤
接下来
上下
上下文
代码
关键
关键字
内容
属性
指向
更多
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
有格互联网科技
百单网互联网科技有限公司
华服互联网科技靠谱吗
广东万易互联网科技有限公司惠州分公司
伟宏互联网科技
新华互联网科技
互联网科技工作委员会主任
蓝思科技飞鸽互联网
合肥互联网科技公司
致骋互联网科技
鑫亿盛互联网科技
亿账通互联网科技
新华互联网科技校企合作
常德市电业局互联网科技部
武汉健翔互联网络科技有限公司
广东鹅鹅鹅互联网科技有限公司
万物互联网智能科技
安徽零酒互联网科技有限公司
第三届互联网大会安防黑科技
上海互联网科技园景观
伟宏互联网科技
互联网科技保险
齐家互联网科技
左右互联网络科技
互联网 科技服务平台
呼和浩特新华互联网科技学院
企晟互联网信息科技有限公司
互联网科技实习生岗位
网互联网络科技
互联网 科技节活动 微视频大赛