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 相关文章推荐
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
js使用DOM操作实现简单留言板的方法
Apr 10 Javascript
Zepto实现密码的隐藏/显示
Apr 07 Javascript
js和jquery中获取非行间样式
May 05 jQuery
Angular.js前台传list数组由后台spring MVC接收数组示例代码
Jul 31 Javascript
jQuery DOM节点的遍历方法小结
Aug 15 jQuery
webpack学习笔记之优化缓存、合并、懒加载
Aug 24 Javascript
微信小程序 可搜索的地址选择实现详解
Aug 28 Javascript
JavaScript中window和document用法详解
Jul 28 Javascript
js实现飞机大战游戏
Aug 26 Javascript
Javascript执行上下文顺序的深入讲解
Nov 04 Javascript
JavaScript仿京东轮播图效果
Feb 25 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
浅谈javascript的调试
2015/01/28 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
python备份文件的脚本
2008/08/11 Python
python的变量与赋值详细分析
2017/11/08 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
东芝官网商城:还原日式美学,打造美好生活
2018/12/27 全球购物
PPP协议组成及简述协议协商的基本过程
2015/05/28 面试题
一套Delphi的笔试题二
2013/05/11 面试题
个人简历自我鉴定
2013/10/11 职场文书
入学生会自荐书范文
2014/02/05 职场文书
太行山上观后感
2015/06/05 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers