JS中对象创建的五中方式

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>01_Object构造函数模式</title>
</head>
<body>
<!--
方式一: Object构造函数模式* 套路: 先创建空Object对象, 再动态添加属性/方法* 适用场景: 起始时不确定对象内部数据* 问题: 语句太多
-->
<script type="text/javascript">/*一个人: name:"Tom", age: 12*/var p = new Object()p = {}p.name = 'Tom'p.age = 12p.setName = function (name) {this.name = name}p.setaAge = function (age) {this.age = age}console.log(p)</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>02_对象字面量</title>
</head>
<body>
<!--
方式二: 对象字面量模式* 套路: 使用{}创建对象, 同时指定属性/方法* 适用场景: 起始时对象内部数据是确定的* 问题: 如果创建多个对象, 有重复代码
-->
<script type="text/javascript">var p = {name: 'Tom',age: 23,setName: function (name) {this.name = name}}console.log(p.name, p.age)p.setName('JACK')console.log(p.name, p.age)var p2 = {name: 'BOB',age: 24,setName: function (name) {this.name = name}}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>03_工厂模式</title>
</head>
<body>
<!--
方式三: 工厂模式* 套路: 通过工厂函数动态创建对象并返回* 适用场景: 需要创建多个对象* 问题: 对象没有一个具体的类型, 都是Object类型
-->
<script type="text/javascript">// 工厂函数: 返回一个需要的数据的函数function createPerson(name, age) {var p = {name: name,age: age,setName: function(name){this.name = name}}return p}var p1 = createPerson('Tom', 12)var p2 = createPerson('JAck', 13)console.log(p1)console.log(p2)
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>04_自定义构造函数模式</title>
</head><body>
<!--
方式四: 自定义构造函数模式* 套路: 自定义构造函数, 通过new创建对象* 适用场景: 需要创建多个类型确定的对象* 问题: 每个对象都有相同的数据, 浪费内存
-->
<script type="text/javascript">function Person(name, age) {this.name = namethis.age = agethis.setName = function (name) {this.name = name}}var p1 = new Person('Tom', 12)var p2 = new Person('Tom2', 13)console.log(p1, p1 instanceof Person)
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>05_构造函数+原型的组合模式</title>
</head>
<body>
<!--
方式六: 构造函数+原型的组合模式* 套路: 自定义构造函数, 属性在函数中初始化, 方法添加到原型上* 适用场景: 需要创建多个类型确定的对象
-->
<script type="text/javascript">function Person (name, age) {this.name = namethis.age = age}Person.prototype.setName = function (name) {this.name = name}var p1 = new Person('Tom', 12)var p2 = new Person('JAck', 23)p1.setName('TOM3')console.log(p1)Person.prototype.setAge = function (age) {this.age = age}p1.setAge(23)console.log(p1.age)Person.prototype = {}p1.setAge(34)console.log(p1)var p3 = new Person('BOB', 12)p3.setAge(12)
</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用中控指纹采集器开发指纹识别案例V1.0

这两天正好有点琐碎的时间&#xff0c;就将两年前未开发完毕的指纹识别项目翻出来继续写了写。 运行环境&#xff1a;  中控指纹采集器  Win10操作系统  .netframework4.0  Sqlserver2008及以上 源码已经上传到微信公众号【雄雄的小课堂】中&#xff0c;回复“指纹识别…

在CentOS上使用Jexus托管运行 ZKEACMS

ZKEACMS Core 是基于 .net core 开发的&#xff0c;可以在 windows, linux, mac 上跨平台运行&#xff0c;接下来我们来看看如何在 CentOS 上使用Jexus托管运行 ZKEACMS&#xff0c;通常我们在Linux部署ASP.NET Core应用&#xff0c;按照微软的官方文档&#xff0c;我们通常需要…

跟我学 Java 8 新特性之 Stream 流(六)收集

转载自 跟我学 Java 8 新特性之 Stream 流&#xff08;六&#xff09;收集 我们前面的五篇文章基本都是在说将一个集合转成一个流&#xff0c;然后对流进行操作&#xff0c;其实这种操作是最多的&#xff0c;但有时候我们也是需要从流中收集起一些元素&#xff0c;并以集合的…

android解决工具类中没有context中的问题

有时我们需要在一个工具类中用到上下文context。当然有一个做法就是使用传递context的方法&#xff0c;当我们需要用全局context的时候&#xff0c;该怎么办呢&#xff1f; 其实我们应用启动的时候会启动Application这个类&#xff0c;这个类是在AndroidManifest.xml文件里其实…

中控指纹采集器开发指纹识别项目(说明)

历史指纹识别相关开发版本&#xff1a;指纹识别开发1.0&#xff0c;开发时间&#xff1a;2018-01-04 指纹识别开发2.0&#xff0c;开发时间&#xff1a;2018-01-04指纹识别开发3.0&#xff0c;开发时间&#xff1a;2020-01-06可以从时间上看的出来&#xff0c;在2018年1月4日&a…

JS生成x到y的随机数

/** Math.random()* - 可以用来生成一个0-1之间的随机数* - 生成一个0-10的随机数* - 生成一个0-x之间的随机数* Math.round(Math.random()*x)* * - 生成一个1-10* - 生成一个x-y之间的随机数* Math.round(Math.random()*(y-x)x)*//*for(var i0 ; i<100 ; i){//con…

MSSQL-Scripter,一个新的生成T-SQL脚本的SQL Server命令行工具

这里向大家介绍一个新的生成T-SQL脚本的SQL Server命令行工具&#xff1a;mssql-scripter。它支持在SQL Server、Azure SQL DB以及Azure SQL DW中为数据库生成CREATE和INSERT T-SQL脚本。 Mssql-scripter是一个跨平台的命令行工具&#xff0c;功能等同于SQL Server Management…

用startSmoothScroll实现RecyclerView滚动到指定位置并置顶,含有动画。

RecyclerView滚动到指定位置并置顶 RecyclerView本身提供了几个定位的方法&#xff0c;除了手动滑动的scrollTo&#xff0c;smootScrollTo和scrollBy&#xff0c;smoothScrollBy方法之外&#xff0c;有一个直接滑动到指定位置item的scrollToPosition方法和另一个在此基础上平滑…

跟我学 Java 8 新特性之 Stream 流(七)流与迭代器,流系列大结局

转载自 跟我学 Java 8 新特性之 Stream 流&#xff08;七&#xff09;流与迭代器&#xff0c;流系列大结局 恭喜你们&#xff0c;马上就要学完Java8 Stream流的一整系列了&#xff0c;其实我相信Stream流对很多使用Java的同学来说&#xff0c;都是一个知识盲点&#xff0c;因…

重要说明,粉丝必看【java人脸识别说明】

重要通知关于人脸识别简要说明&#xff1a; 源码即日起由免费改为收费。以下是微信收款码&#xff0c;如果有需要可以直接扫码转账即可。&#xff08;注意&#xff0c;源码均为测试好的&#xff0c;故各位在开发的过程中遇到的源码问题不提供任何技术支持。【转账完成之后可以直…

包装类

如果用包装类可以打印出来 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title></title><script type"text/javascript">var s123;snew String(s);s.hello"nihao";console.log(s.hello);<…

深入理解C#:编程技巧总结(二)

以下总结参阅了&#xff1a;MSDN文档、《C#高级编程》、《C#本质论》、前辈们的博客等资料&#xff0c;如有不正确的地方&#xff0c;请帮忙及时指出&#xff01;以免误导&#xff01; 在上一篇 深入理解C#&#xff1a;编程技巧总结&#xff08;一&#xff09; 中总结了25点&a…

pagerslidingtabstrip 横向滑动

pagerslidingtabstrip 横向滑动 配合ViewPager

Java 虚拟机对锁优化所做的努力

转载自 Java 虚拟机对锁优化所做的努力 作为一款公用平台&#xff0c;JDK 本身也为并发程序的性能绞尽脑汁&#xff0c;在 JDK 内部也想尽一切办法提供并发时的系统吞吐量。这里&#xff0c;我将向大家简单介绍几种 JDK 内部的 "锁" 优化策略。 1、 锁偏向 锁偏…

不一样的假期,到底哪里不一样?

目录&#xff1a;1.回访17级同学们&#xff0c;了解同学们目前的工作情况2.和18级同学们聊天&#xff0c;了解假期在家的学习情况3.检查19级同学们提交至小程序内的作业。回忆17级前两天将我带的17级毕业班挨个找了一遍&#xff0c;大致了解了下大家最近的工作情况&#xff0c;…

JS字符串和正则表达式

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script type"text/javascript">var str "1a2b3c4d5e6f7";/** split()* - 可以将一个字符串拆分为一个数组* - 方法中可以传递…

TensorFlowSharp入门使用C#编写TensorFlow人工智能应用

TensorFlowSharp入门使用C#编写TensorFlow人工智能应用学习。 TensorFlow简单介绍 TensorFlow 是谷歌的第二代机器学习系统&#xff0c;按照谷歌所说&#xff0c;在某些基准测试中&#xff0c;TensorFlow的表现比第一代的DistBelief快了2倍。 TensorFlow 内建深度学习的扩展支…

Mybatis 模糊查询

第一种&#xff1a;&#xff08;推荐&#xff09; select * from user where username like #{abc}执行保存操作List<User> users dao.findUserByName("保"); 日志&#xff1a;> Preparing: select * from user where username like %保%; > Parameter…

Spring Cloud 升级最新 Finchley 版本,踩了所有的坑

转载自 Spring Cloud 升级最新 Finchley 版本&#xff0c;踩了所有的坑 Spring Boot 2.x 已经发布了很久&#xff0c;现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finchley 版本&#xff0c;现在一起为项目做一次整体框架升级。 升级前 > 升级后 Spring Boot …

快来看看你们的新年礼物,猜猜是什么?

春节总把新桃换旧符千门万户曈曈日春风送暖入屠苏爆竹声中一岁除新年礼物前言各位同学们&#xff0c;新春快乐哇&#xff0c;利用假期的时间&#xff0c;花费5天左右的时间&#xff0c;为大家每个人准备了一份神秘的新年礼物&#xff0c;想不想知道是什么吗&#xff1f;必看那么…