关于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 相关文章推荐
初识Javascript小结
Jul 16 Javascript
jQuery+ajax实现文章点赞功能的方法
Dec 31 Javascript
Jquery遍历select option和添加移除option的实现方法
Aug 26 Javascript
正则表达式,替换所有HTML标签的简单实例
Nov 28 Javascript
详解用node编写自己的cli工具
May 23 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
Feb 27 Javascript
vue中使用mxgraph的方法实例代码详解
May 17 Javascript
通过说明与示例了解js五种设计模式
Jun 17 Javascript
微信小程序实现弹出菜单动画
Jun 21 Javascript
在vue项目中使用sass语法问题
Jul 18 Javascript
JavaScript遍历数组的方法代码实例
Jan 14 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 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程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
利用Python获取操作系统信息实例
2016/09/02 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
使用Python实现分别输出每个数组
2019/12/06 Python
python编写俄罗斯方块
2020/03/13 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
HTML5文档结构标签
2017/04/21 HTML / CSS
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
英文简历中的自荐信范文
2013/12/14 职场文书
新春寄语大全
2014/04/09 职场文书
高中课程设置方案
2014/05/28 职场文书
小学教育见习报告
2014/10/31 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
2015年消防工作总结
2015/04/24 职场文书
求职意向书范本
2015/05/11 职场文书
python实现简单的井字棋
2021/05/26 Python
python 实现体质指数BMI计算
2021/05/26 Python
vue实现移动端div拖动效果
2022/03/03 Vue.js
MySQL常用慢查询分析工具详解
2022/08/14 MySQL