js中new一个对象的过程


Posted in Javascript onFebruary 20, 2017

使用new关键字调用函数(new ClassA(…))的具体步骤:

1. 创建空对象{}

2. 使用新对象,调用函数,函数中的this被指向新实例对象:

         {}.构造函数();         

3. 设置新对象的constructor属性为构造函数的名称,设置新对象的__proto__属性指向构造函数的prototype对象

4. 将初始化完毕的新对象地址,保存到等号左边的变量中

注意:若构造函数中没有返回值或返回值是基本类型(Number、String、Boolean)的值,则返回新实例对象;若返回值是引用类型的值,则实际返回值为这个引用类型。

var foo = "bar";
function test () {
 this.foo = "foo";
}
new test();  


//test中的this指新对象,并未改变全局的foo属性
console.log(this.foo);  // "bar"
console.log(new testThis().foo); // "foo";new和属性访问.运算符优先级相通,从左往右执行

以上皆为个人理解,如有错误之处,欢迎留言指正。

希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
新浪的图片新闻效果
Jan 13 Javascript
javascript eval函数深入认识
Feb 21 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
Mar 11 Javascript
使用Browserify配合jQuery进行编程的超级指南
Jul 28 Javascript
JavaScript的代码编写格式规范指南
Dec 07 Javascript
基于jQuery实现数字滚动效果
Jan 16 Javascript
详解angular用$sce服务来过滤HTML标签
Apr 11 Javascript
JavaScript实现前端分页控件
Apr 19 Javascript
详解angularjs 关于ui-router分层使用
Jun 12 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
May 15 Javascript
详解如何使用babel进行es6文件的编译
May 29 Javascript
node express使用HTML模板的方法示例
Aug 22 Javascript
利用node.js搭建简单web服务器的方法教程
Feb 20 #Javascript
jQuery实现鼠标跟随效果
Feb 20 #Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 #Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
Feb 20 #Javascript
分享一道关于闭包、bind和this的面试题
Feb 20 #Javascript
原生JS实现跑马灯效果
Feb 20 #Javascript
js 实现省市区三级联动菜单效果
Feb 20 #Javascript
You might like
PHP 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
php设计模式 Prototype (原型模式)代码
2011/06/26 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
Python中类的初始化特殊方法
2017/12/01 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
Pandas的Apply函数具体使用
2020/07/21 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
Python截图并保存的具体实例
2021/01/14 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
入党积极分子自我鉴定范文
2014/03/25 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
使用Redis实现实时排行榜功能
2021/07/02 Redis
SQL SERVER触发器详解
2022/02/24 SQL Server
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
《帝国时代4》赛季预告 新增内容编译器可创造地图
2022/04/03 其他游戏
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers
vue 给数组添加新对象并赋值
2022/04/20 Vue.js