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 相关文章推荐
使用JavaScript库还是自己写代码?
Jan 28 Javascript
checkbox全选所涉及到的知识点介绍
Dec 31 Javascript
javascript 闭包详解
Jul 02 Javascript
跟我学习javascript的最新标准ES6
Nov 20 Javascript
JavaScript 七大技巧(一)
Dec 13 Javascript
JS事件添加和移出的兼容写法示例
Jun 20 Javascript
jQuery事件用法详解
Oct 06 Javascript
使用JavaScript实现alert的实例代码
Jul 06 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
Aug 19 Javascript
Vue实现按钮旋转和移动位置的实例代码
Aug 09 Javascript
Vue函数式组件-你值得拥有
May 09 Javascript
js抽奖转盘实现方法分析
May 16 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
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
php中的静态变量的基本用法
2014/03/20 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
Python里隐藏的“禅”
2014/06/16 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
python 调用Google翻译接口的方法
2020/12/09 Python
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
物流仓储实习自我鉴定
2013/09/25 职场文书
中专自荐信
2013/10/13 职场文书
广告学毕业生求职信
2014/01/30 职场文书
小学美术教学反思
2014/02/01 职场文书
个人职业及收入证明
2014/10/13 职场文书
青年文明号申报材料
2014/12/23 职场文书
初三语文教学反思
2016/03/03 职场文书
利用Python实时获取steam特惠游戏数据
2022/06/25 Python