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 相关文章推荐
JS实现QQ图片一闪一闪的效果小例子
Jul 31 Javascript
javascript 自定义回调函数示例代码
Sep 26 Javascript
jQuery获取checkboxlist的value值的方法
Sep 27 Javascript
jQuery代码性能优化的10种方法
Jun 21 Javascript
原生JS实现幻灯片
Feb 22 Javascript
动态加载权限管理模块中的Vue组件
Jan 16 Javascript
vue项目中使用tinymce编辑器的步骤详解
Sep 11 Javascript
JQuery中queue方法用法示例
Jan 31 jQuery
解决vuex数据异步造成初始化的时候没值报错问题
Nov 13 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
Jan 02 Javascript
Vue程序化的事件监听器(实例方案详解)
Jan 07 Javascript
Vue组件化(ref,props, mixin,.插件)详解
May 15 Vue.js
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使之能同时支持GIF和JPEG
2006/10/09 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
PHP xpath()函数讲解
2019/02/11 PHP
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
node.js中的console用法总结
2014/12/15 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
spyder常用快捷键(分享)
2017/07/19 Python
python WindowsError的错误代码详解
2017/07/23 Python
Python中property函数用法实例分析
2018/06/04 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
Django nginx配置实现过程详解
2020/09/10 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
医德医风自我评价
2014/09/19 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
教师外出学习心得体会
2016/01/18 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
浅谈MySQL函数
2021/10/05 MySQL