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

 更新时间:2019年05月30日 10:59:15   作者:常驻客  
这篇文章主要介绍了JS使用new操作符创建对象的方法,结合实例形式分析了javascript面向对象程序设计类的定义、new操作符对象的创建及相关操作注意事项,需要的朋友可以参考下

本文实例讲述了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>

运行结果:

如果我们不使用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);

运行结果:

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

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

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

相关文章

  • 前端使用JS内置Blob实现下载各种形式的文件实例

    前端使用JS内置Blob实现下载各种形式的文件实例

    通过使用JavaScript我们可以很方便地实现文件的下载功能,这篇文章主要给大家介绍了关于前端使用JS内置Blob实现下载各种形式文件的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • js实现页面跳转的五种方法推荐

    js实现页面跳转的五种方法推荐

    下面小编就为大家带来一篇js实现页面跳转的五种方法推荐。小编觉得挺不错的。现在分享给大家。给大家参考一下。
    2016-03-03
  • JavaScript实现时间倒计时跳转(推荐)

    JavaScript实现时间倒计时跳转(推荐)

    这篇文章主要介绍了JavaScript实现时间倒计时跳转(推荐)的相关资料,涉及到settimeout和setinterval方法的介绍,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • JavaScript中Infinity(无穷数)的使用和注意事项

    JavaScript中Infinity(无穷数)的使用和注意事项

    Infinity(无穷大)在 JS 中是一个特殊的数字,它的特性是它比任何有限的数字都大,如果不知道 Infinity,我们在一些运算操作遇到时,就会觉得很有意思,下面这篇文章主要给大家介绍了关于JavaScript中Infinity(无穷数)的使用和注意事项,需要的朋友可以参考下
    2022-04-04
  • JavaScript获取css行间样式,内连样式和外链样式的简单方法

    JavaScript获取css行间样式,内连样式和外链样式的简单方法

    下面小编就为大家带来一篇JavaScript获取css行间样式,内连样式和外链样式的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • JS求平均值的小例子

    JS求平均值的小例子

    这篇文章主要介绍了JS求平均值的小例子,有需要的朋友可以参考一下
    2013-11-11
  • jquery及原生js获取select下拉框选中的值示例

    jquery及原生js获取select下拉框选中的值示例

    有一id=test的下拉框,怎么拿到选中的那个值呢?本文将采用javascript原生的方法及jquery方法(前提是已经加载了jquery库)来简单实现下
    2013-10-10
  • JS实现黑色大气的二级导航菜单效果

    JS实现黑色大气的二级导航菜单效果

    这篇文章主要介绍了JS实现黑色大气的二级导航菜单效果,具有延迟响应鼠标事件显示切换效果的功能,非常简单实用,需要的朋友可以参考下
    2015-09-09
  • JS点击缩略图整屏居中放大图片效果

    JS点击缩略图整屏居中放大图片效果

    今天开发的时候,遇到要点击缩略图之后居中显示图片的大图查看(大致效果如上图所示)~想了好几种实现方式,下面通过本文给大家分享JS点击缩略图整屏居中放大图片效果,需要的朋友参考下吧
    2017-07-07
  • 使用微信小程序制作核酸检测点查询工具

    使用微信小程序制作核酸检测点查询工具

    出门在外,没有核酸证明寸步难行,此文将教你如何通过小程序制作一个工具帮你在人生地不熟的情况如何迅速找到核酸检测点,实现核酸点查询、地图导航、拨号等功能,需要的朋友可以参考下
    2022-10-10

最新评论