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实现的GBK、UTF8字符串实际长度计算函数
Aug 27 Javascript
jquery转盘抽奖功能实现
Nov 13 Javascript
jQuery插件编写步骤详解
Jun 03 Javascript
js对字符串进行编码的方法总结(推荐)
Nov 10 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
js select下拉联动 更具级联性!
Apr 17 Javascript
原生js实现商品放大镜效果
Jan 12 Javascript
express如何使用session与cookie的方法
Jan 30 Javascript
vue项目中跳转到外部链接的实例讲解
Sep 20 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
May 15 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
Vue3中的Refs和Ref详情
Nov 11 Vue.js
利用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 max_execution_time执行时间问题
2011/07/17 PHP
php XPath对XML文件查找及修改实现代码
2011/07/27 PHP
php的sso单点登录实现方法
2015/01/08 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
什么是JavaScript
2009/08/13 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
javascript轮播图算法
2016/10/21 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
Python科学计算环境推荐——Anaconda
2014/06/30 Python
在Python中使用dict和set方法的教程
2015/04/27 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
美国鲜花递送:UrbanStems
2021/01/04 全球购物
初中军训感想300字
2014/03/05 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
芙蓉镇观后感
2015/06/10 职场文书
房屋所有权证明
2015/06/19 职场文书