关于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实现仿腾讯娱乐频道焦点图(幻灯片)特效
Mar 06 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
Sep 15 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
Dec 02 Javascript
javaScript日期工具类DateUtils详解
Dec 08 Javascript
解析Angular 2+ 样式绑定方式
Jan 15 Javascript
JS动画实现回调地狱promise的实例代码详解
Nov 08 Javascript
JavaScript惰性载入函数实例分析
Mar 27 Javascript
详解js中let与var声明变量的区别
Apr 05 Javascript
解决vue单页面应用中动态修改title问题
Jun 09 Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
JS正则表达式验证端口范围(0-65535)
Jan 06 Javascript
使用vue构建多页面应用的示例
Oct 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
PHP4.04简明安装
2006/10/09 PHP
WINXP下apache+php4+mysql
2006/11/25 PHP
php 服务器调试 Zend Debugger 的安装教程
2009/09/25 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
取得父标签
2006/11/14 Javascript
javascript 单选框,多选框美化代码
2008/08/01 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
2018/10/31 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
前台领班岗位职责
2013/12/04 职场文书
单位成立周年感言
2014/01/26 职场文书
《穷人》教学反思
2014/04/08 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
学校远程教育工作总结
2015/08/11 职场文书
python使用pymysql模块操作MySQL
2021/06/16 Python