new操作符的作用如下:

1.创建一个空对象
2.由this变量引用该对象
3.该对象继承该函数的原型
4.把属性和方法加入到this引用的对象中
5.新创建的对象由this引用,最后隐式地返回this。
过程如下:

var fn = function () { };
var fnObj = new fn();

1、创建了一个空对象

var obj = new object();

2、设置原型链

obj._proto_ = fn.prototype;

3、让fn的this指向obj,并执行fn的函数体

var result = fn.call(obj);

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

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

new操作符具体干了什么呢?的更多相关文章

  1. new操作符具体干了什么

    function Func(){ }; var newFunc=new Func (); new共经过了4个阶段 1.创建一个空对象 var obj=new Object(); 2.设置原型链 把 o ...

  2. new操作符具体干了什么呢?

    考察对new关键的深刻认识,是否对前端知识有专研,如果没有专研的人,肯定说创建了一个对象,恭喜你面试官知道你是小菜鸟来的,这次面试基本上没有太大的希望了.一定要对new过程的4个步骤非常清楚,这样才能 ...

  3. 结构体. ->操作符的内涵

    实质上就是结构体成员相对于结构体大变量的偏移地址, 操作符所干的事情就是寻址.是偏移,是偏移,是偏移.偏移后的地址

  4. js中的new关键字都干了些什么?

    new 操作符 在有上面的基础概念的介绍之后,在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在javascript中,我们将这类方式成为Pseudoclassic ...

  5. javascript 中的new操作符的理解

    new 操作符 在有上面的基础概念的介绍之后,在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在Javascript中,我们将这类方式成为Pseudoclassic ...

  6. js的new操作符

    1.创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型. 2.属性和方法被加入到 this 引用的对象中. 3.新创建的对象由 this 所引用,并且最后隐式的返回 this . ...

  7. new操作符的内部运行解析

    在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在Javascript中,我们将这类方式成为Pseudoclassical. 基于上面的例子,我们执行如下代码   ...

  8. new操作符实现过程

    var obj = new Object(); //创建新对象 一. new是干嘛的? new操作符用来生成一个新的对象, 它后面必须跟上一个函数(否则, 会抛出TypeError异常), 这个函数就 ...

  9. h5面试题集合

    一.闭包的理解: 使用闭包主要是为了设计私有的方法和变量.闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露. 闭包三个特性: 1.函数嵌套函数 ; ...

  10. 欢迎使用CSDN-markdown编辑器

    私有变量和函数 在函数内部定义的变量和函数,如果不对外提供接口,外部是无法访问到的,也就是该函数的私有的变量和函数. function Box(){ var color = "blue&qu ...

随机推荐

  1. apisix~lua插件开发与插件注册

    开发插件的步骤 在APISIX中,要自定义插件,一般需要按照以下步骤进行操作: 编写Lua脚本:首先,你需要编写Lua脚本来实现你想要的功能.可以根据APISIX提供的插件开发文档和示例进行编写. 将 ...

  2. 一文搞懂RESTful开发

    REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格 当我们想表示一个网络资源的时候,可以使用两种方式: 传统风格资源描述形式 http: ...

  3. 13年过去了,Spring官方竟然真的支持Bean的异步初始化了!

    你好呀,我是歪歪. 两年前我曾经发布过这样的一篇文章<我是真没想到,这个面试题居然从11年前就开始讨论了,而官方今年才表态.> 文章主要就是由这个面试题引起: Spring 在启动期间会做 ...

  4. Asp-Net-Core开发笔记:给SwaggerUI加上登录保护功能

    前言 在 SwaggerUI 中加入登录验证,是我很早前就做过的,不过之前的做法总感觉有点硬编码,最近 .Net8 增加了一个新特性:调用 MapSwagger().RequireAuthorizat ...

  5. 简单 python 爬虫(爬取小说网)

    #https://blog.csdn.net/Isana_Yashiro/article/details/84582946 import requestsfrom bs4 import Beautif ...

  6. 重温 ShardingSphere 分布策略

    ShardingSphere--分片及策略:https://blog.csdn.net/weixin_38910645/article/details/107538848 Sharding-JDBC: ...

  7. HTML——input之单选按钮

    在 HTML 中,把 <input> 标签的 type 属性设置为 radio 可以表示单选按钮.具体语法格式如下: <input type="radio" /& ...

  8. 7.30考试总结(NOIP模拟28)[遗忘之祭仪·客星璀璨之夜·割海成路之日]

    一个人有表里两面,你能看到的,仅仅是其中一面而已. 前言 看着这套题非常不可做,但是经历的所有的模拟赛中,这次还是第一次切题(惭愧) 本来 T1 我 1h 就码完了,交了一遍 TLE90 然后后来两个 ...

  9. GNU gprof分析C性能

    参考 gprof的简单使用-anthony1983-ChinaUnix博客 Top (GNU gprof) (sourceware.org) c - Enable and disable gprof ...

  10. 开机启动VM WARE 某台虚拟机

    新建一个批处理,内容如下: set vm_root=C:\Program Files (x86)\VMware\VMware Workstation "%vm_root%\vmrun.exe ...