关于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 相关文章推荐
从jQuery.camelCase()学习string.replace() 函数学习
Sep 13 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
Apr 26 Javascript
jQuery extend 的简单实例
Sep 18 Javascript
JS实现两个大数(整数)相乘
Apr 28 Javascript
JavaScript闭包详解
Feb 02 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
Apr 06 Javascript
微信小程序(应用号)开发新闻客户端实例
Oct 24 Javascript
JS如何设置iOS中微信浏览器的title
Nov 22 Javascript
vuex学习之Actions的用法详解
Aug 29 Javascript
Node之简单的前后端交互(实例讲解)
Nov 14 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
Mar 29 Javascript
关于vue-cli 3配置打包优化要点(推荐)
Apr 22 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实现显示照片exif信息的方法
2014/07/11 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
封装html的select标签的js操作实例
2013/07/02 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
python如何通过protobuf实现rpc
2016/03/06 Python
python实现实时监控文件的方法
2016/08/26 Python
python安装教程
2018/02/28 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
python 图片去噪的方法示例
2019/07/09 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
python绘制趋势图的示例
2020/09/17 Python
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
旅游项目合作意向书
2015/05/08 职场文书
北京爱情故事观后感
2015/06/12 职场文书
高中运动会前导词
2015/07/20 职场文书