前言
Js是当今时代最常用的代码操作语言,其中new操作符尤为常见。对于很多代码小白来说,并不清楚new在Js中扮演着怎样的角色,具体是做什么用,干了什么。本文从new操作符的作用着手,简单介绍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,并html" target="_blank">执行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操作符作用内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
本文向大家介绍js new操作符的原理相关面试题,主要包含被问及js new操作符的原理时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 创建一个类的实例:创建一个空对象obj,然后把这个空对象的proto设置为构造函数的prototype。 初始化实例:构造函数被传入参数并调用,关键字this被设定指向该实例obj。 返回实例obj。
本文向大家介绍详解JavaScript中new操作符的解析和实现,包括了详解JavaScript中new操作符的解析和实现的使用技巧和注意事项,需要的朋友参考一下 前言 new 运算符是我们在用构造函数创建实例的时候使用的,本文来说一下 new 运算符的执行过程和如何自己实现一个类似 new 运算符的函数。 new 运算符的运行过程 new 运算符的主要目的就是为我们创建一个用户定义的对象类型的实
本文向大家介绍js的new操作符做了哪些事情?相关面试题,主要包含被问及js的new操作符做了哪些事情?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: new 操作符新建了一个空对象,这个对象原型指向构造函数的prototype,执行构造函数后返回这个对象。
本文向大家介绍JS之相等操作符详解,包括了JS之相等操作符详解的使用技巧和注意事项,需要的朋友参考一下 1.相等 == 和不相等 != 先转换操作数再比较相等性 在转换不同的数据类型时,相等和不相等遵循以下规则: 1.1 如果有一个操作数是布尔值,则在比较相等性前先将其转换为数值---false转换为0,true转换为1; 1.2 如果一个操作数是字符串,另一个操作数是数值,则在比较相等性前将字符
本文向大家介绍关于JS变量和作用域详解,包括了关于JS变量和作用域详解的使用技巧和注意事项,需要的朋友参考一下 ECMAScript 变量: 1.基本类型值(简单数据段) 2.引用类型值(可能由过个值构成的对象) → 保存在内存中的对象 ------ 动态属性: 只能给引用型值动态添加新属性,以便将来使用。 ------ 复制变量值 : 基本类型值的复制 → 在变量对象上创建一个新值 → 复制给新
常规的 {...} 语法允许创建一个对象。但是我们经常需要创建许多类似的对象,例如多个用户或菜单项等。 这可以使用构造函数和 "new" 操作符来实现。 构造函数 构造函数在技术上是常规函数。不过有两个约定: 它们的命名以大写字母开头。 它们只能由 "new" 操作符来执行。 例如: function User(name) { this.name = name; this.isAdmin