关于Js中new操作符的作用详解


Posted in Javascript onFebruary 21, 2021

前言

Js是当今时代最常用的代码操作语言,其中new操作符尤为常见。对于很多代码小白来说,并不清楚new在Js中扮演着怎样的角色,具体是做什么用,干了什么。本文从new操作符的作用着手,简单介绍new操作符相关知识。

关于Js中new操作符的作用详解

什么是new?

众所周知,在JS中,new的作用是通过构造函数来创建一个实例对象。

像下面这样:(和普通函数不一样,当函数用作构造函数时,首字母一般要大写,以作区分。)

function Foo(name) {
  this.name = name;
}
console.log("new Foo('mm')的类型:",typeof new Foo('mm')); // object
console.log("Foo的类型:",typeof Foo); // function

创建了一个空对象

var obj=new Object();

在Js代码中,new操作符的主要作用是产生对象。通过new创建空对象,为创建对象打基底。

设置原型链

obj.__proto__= Func.prototype;

JS中在利用new操作符建好基底后,就开始下一步的Js代码操作,设置原型链。new通过构造函数创建出的实例可以访问到构造函数原型链中的属性,换言之,通过new操作符,原型链链接了实例和构建函数。

(改变this指向)让Func中的this指向obj,并执行Func的函数体。

var result =Func.call(obj);

一般情况下,在Js代码组中,出现this时,构造函数内部是正常工作,但当通过new操作符改变this指向后,所出现的返回值会被正常的返回出去。

判断Func的返回值类型:如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。

if (typeof(result) == "object"){
  func=result;
}
else{
  func=obj;
}

从上述一组new操作符代码中可看出,new还可用来判断Func的返回值类型。如果返回值是值类型,则正常返回。如果是引用类型,就返回到引用类型的对象。

以上四点是new操作符在Js代码中的主要作用,对于Js代码小白希望可以有帮助。

总结

到此这篇关于关于Js中new操作符作用的文章就介绍到这了,更多相关Js new操作符作用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JQery jstree 大数据量问题解决方法
Mar 09 Javascript
JavaScript 获取当前时间戳的代码
Aug 05 Javascript
Javascript中的isNaN函数使用说明
Nov 10 Javascript
点击隐藏页面左栏或右栏实现js代码
Apr 01 Javascript
jquery拖动插件(jquery.drag)使用介绍
Jun 18 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
Dec 26 Javascript
jQuery简单实现tab选项卡切换效果
Jun 20 Javascript
详解开源的JavaScript插件化框架MinimaJS
Oct 26 Javascript
浅谈JS对象添加getter与setter的5种方法
Jun 09 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
Nov 08 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
Nov 13 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 #Vue.js
Vue实现todo应用的示例
Feb 20 #Vue.js
JavaScript 绘制饼图的示例
Feb 19 #Javascript
JavaScript 判断浏览器是否是IE
Feb 19 #Javascript
原生JavaScript实现进度条
Feb 19 #Javascript
原生JavaScript实现换肤
Feb 19 #Javascript
基于vue的video播放器的实现示例
Feb 19 #Vue.js
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
Javascript 继承机制实例
2009/08/12 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
jquery实现通用版鼠标经过淡入淡出效果
2014/06/15 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
nodejs微信开发之接入指南
2019/03/17 NodeJs
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python使用新浪微博API发送微博的例子
2014/04/10 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
pytorch如何冻结某层参数的实现
2020/01/10 Python
Python 格式化打印json数据方法(展开状态)
2020/02/27 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
英国电器零售商:PRC Direct
2018/06/21 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
导游词之五台山
2019/10/11 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书
MYSQL 运算符总结
2021/11/11 MySQL
JS class语法糖的深入剖析
2022/07/07 Javascript