JS使用new操作符创建对象的方法分析


Posted in Javascript onMay 30, 2019

本文实例讲述了JS使用new操作符创建对象的方法。分享给大家供大家参考,具体如下:

在编写js代码时,我们有时会需要使用函数来模拟java中的类,并用它来产生对象,在定义了一个构造函数之后我们需要使用new操作符来调用调用函数才能得到我们想要的对象。例如:

<script>
function Constructor(name){
this.name = name
}
var person1 = Constructor("张三");//undefined
var person2 = new Constructor("张三");//得到一个对象{name:"张三"}
console.log(person1);
console.log(person2);
</script>

运行结果:

JS使用new操作符创建对象的方法分析

如果我们不使用new操作符调用函数,就只会简单的执行函数,并把函数的返回值赋给person1,所以上面的例子中person1的值是undefined,.

如果我们使用new操作符调用构造函数,做了哪些事情呢?

1.构造函数没有返回值

使用new操作符调用函数,会隐式的创建一个对象(我们这里称这个对象为obj),这个对象obj是连接到构造函数的原型上的,即obj会继承构造函数原型上的属性方法,并且构造函数中的this也被绑定到了这个对象上,执行完成后这个对象会被作为返回值返回。

2.构造函数有返回值(这种情况比较少,至少我没用过)

new出来的值由返回值的prototype而定

例如:

function Constructor(name){
this.name = name
return this.name;
}
var person = new Constructor("123");//Constructor {name: "123"};Object,因为基本类型的prototype都是Object
function Constructor(name){
this.name = name
return new String(this.name);
}
var person = new Constructor("123");//String {0: "1", 1: "2", 2: "3", length: 3, [[PrimitiveValue]]: "123"},
console.log(person);

运行结果:

JS使用new操作符创建对象的方法分析

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容还可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
基于Jquery的标签智能验证实现代码
Dec 27 Javascript
JavaScript去掉数组中的重复元素
Jan 13 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
Aug 08 Javascript
JS下拉缓冲菜单示例代码
Aug 30 Javascript
JavaScript验证图片类型(扩展名)的函数分享
May 05 Javascript
Jquery焦点与失去焦点示例应用
Jun 10 Javascript
仿iframe效果Aajx文件上传实例
Nov 18 Javascript
js中的面向对象入门
Mar 06 Javascript
如何使用vuejs实现更好的Form validation?
Apr 07 Javascript
js页面加载后执行的几种方式小结
Jan 30 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
Aug 31 Javascript
vue离开当前页面触发的函数代码
Sep 01 Javascript
vue滚动固定顶部及修改样式的实例代码
May 30 #Javascript
简述pm2常用命令集合及配置文件说明
May 30 #Javascript
Vue实现固定定位图标滑动隐藏效果
May 30 #Javascript
浅谈Vue的响应式原理
May 30 #Javascript
vue实现固定位置显示功能
May 30 #Javascript
搭建一个Koa后端项目脚手架的方法步骤
May 30 #Javascript
JS使用cookie保存用户登录信息操作示例
May 30 #Javascript
You might like
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
js获取div高度的代码
2008/08/09 Javascript
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
mustache.js实现首页元件动态渲染的示例代码
2020/12/28 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
python实现异步回调机制代码分享
2014/01/10 Python
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
详细讲解Python中的文件I/O操作
2015/05/24 Python
让python在hadoop上跑起来
2016/01/27 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
书法培训心得体会
2014/01/05 职场文书
卫生安全检查制度
2014/02/04 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
优秀党员推荐材料
2014/12/18 职场文书
2016春季运动会前导词
2015/11/25 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python