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 相关文章推荐
兼容多浏览器的字幕特效Marquee的通用js类
Jul 20 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
Feb 23 Javascript
Node.js实战 建立简单的Web服务器
Mar 08 Javascript
常用js字符串判断方法整理
Oct 18 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
JavaScript实现同时调用多个函数的方法
Nov 09 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
Jul 22 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
Vue.js框架路由使用方法实例详解
Aug 25 Javascript
Vue2.0用户权限控制解决方案
Nov 29 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
May 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脚本的10个技巧(7)
2006/10/09 PHP
8个必备的PHP功能开发
2015/10/02 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
鼠标经过的文本框textbox变色
2009/05/21 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
windows下python安装pip图文教程
2018/05/25 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
青年文明号复核材料
2014/02/11 职场文书
秘书英文求职信
2014/04/16 职场文书
小学二年级学生评语
2014/04/21 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
土地租赁协议书
2015/01/29 职场文书
签字仪式主持词
2015/07/03 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
Redis持久化与主从复制的实践
2021/04/27 Redis
python异常中else的实例用法
2021/06/15 Python
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js