创建、调用JavaScript对象的方法集锦
作者:hebedich 发布时间:2024-02-25 08:01:03
标签:创建,调用,JavaScript对象
今天在做项目时,遇到了需要创建JavaScript对象的情况。所以Bing了一篇老外写的关于3种创建JavaScript对象的文章,看后跟着打了一遍代码。感觉方法挺好的,在这里与大家分享一下。
一、利用函数创建对象:
//定义对象
function Animal(type)
{
this.name="";
this.type=type;
this.introduction=function(){
return "我的名字是: "+this.name+",我属于 "+this.type;
}
}
var animal=new Animal("家禽"); //实例化我们上面创建的对象
animal.name="小红";
alert(animal.introduction()); //调用它的introduction函数(此时,页面会弹出:我的名字是 小红,我属于 家禽);
这种方法,大家一定都很熟悉了。但是,使用这种方法会造成性能的损耗。在这里,我们是通过new关键子来实例化对象的。其实,new关键子是做了两件事。一,定义了一个匿名方法(Animal)。二、调用它。这样就不如我们接下来要介绍的方法高效了。
二、利用对象字面量(object literals):
不知道翻译的对不对,待会我会把原文地址告诉大家,有兴趣的可以看原文。
//定义对象
var Book=
{
name:"红楼梦",
type:"文学作品",
getAuthor:function()
{
return :"我是曹雪芹的孩子!";
}
}
alert(Book.GetAuthor()); //调用对象方法,此时页面会出现:我是曹雪芹的孩子。
Book.name="灌篮"; //修改对象属性
alert(Book.name); //此时,页面会弹出:灌篮
相信大家看到代码,应该明白了为什么说这个方法会高效一些了。因为,它相当于定义了一个JavaScript全局变量。我们可以直接用它,不需要实例化它。但是,这样看起来怪怪的啊。那么,解决方案来了。我们来看看第三种方法吧。
三、单例模式(Singleton using a function):
翻译成单例模式,可能不是太妥。先看代码吧:
//定义对象
var Gender=new function()
{
this.type="女生";
this.speaking=function()
{
return "我是"+this.type;
}
}
alert(Gender.speaking();) //使用对象 此时页面会出现:我是女生。
大家看这段儿代码,是不是与我们的方法一很像呢?但是,它可像方法一那样工作的。方法一,用一次对象,就要创建一次对象。这个方法,创建一次对象,就可以永久使用。所以,这种方式,很类似于设计模式中的单例模式。
0
投稿
猜你喜欢
- 多表查询1. 增删改一对多:先一后多,外键可以为对象或依赖表的主键(publish and book)publish = Publish.o
- 本文实例讲述了PHP抓取及分析网页的方法。分享给大家供大家参考,具体如下:抓取和分析一个文件是非常简单的事。这个教程将通过一个例子带领你一步
- 问题你想将几个小的字符串合并为一个大的字符串解决方案如果你想要合并的字符串是在一个序列或者 iterable 中,那么最快的方式就是使用 j
- moviepy官网:https://pypi.org/project/moviepy/是一个用于视频编辑的Python库:切割、连接、标题插
- 今天我们继续向大家介绍一款翻页效果的制作。当鼠标移动到链接上时,翻页的链接区除了有悬停效果,还会放大。这样的效果具有很强烈的效果。大家适当美
- 在Python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文件,下一篇文章
- 一、创建TensorRT有以下几个步骤:1.用TensorRT中network模块定义网络模型2.调用TensorRT构建器从网络创建优化的
- 0 环境Python版本:3.6.8系统版本:macOS MojavePython Jupyter Notebook1 引言七月了,大家最近
- 1,复制简介 简单的说,复制是获取一个或多个数据库的过程,它系统的针对出入不同数据库的数据,提供基于规则的拷贝机制。 复制分为三种角色, 1
- 前言网易云音乐这款音乐APP本人比较喜欢,用户量也比较大,而网易云音乐之所以用户众多和它的歌曲评论功能密不可分,很多歌曲的评论非常有意思,其
- 项目中有个定时任务,每天取到一些表数据传到一个外部接口,但是最近总是有异常,今天查了下原因。首先本地和测试环境测试这个程序都没问题,只有线上
- 调用很简单 Readkid.motion.tween(target,duration, vars)target: 要缓动的DOM对象dura
- 一、安装步骤 1.官网下载安装包2.安装一路next即可,安装位置可改到D盘3.添加环境变量将如上路径添加到系统path,不会的参
- 1.腾讯企业邮箱SMTP服务器地址:smtp.exmail.qq.com,ssl端口为:4652.确保腾讯企业邮箱中开启了SMTP服务:3.
- PyQt5单选按钮控件QRadioButton简介QRadioButton 继承自 QAbstractButton,其主要作用提供用户一些互
- Golang精编100题能力模型(测试)初级primary:熟悉基本语法,能够看懂代码的意图;在他人指导下能够完成用户故事的开发,编写的代码
- 一、说明 numpy.ufunc是什么函数?答
- 一、数字类型。数字类型按照我的分类方法分为三类:整数类、小数类和数字类。 我所谓的“数字类”,就是指DECIMAL
- python环境 3.6.5 win7 linux环境同理先尝试了PyInstaller ,打包时一直提示 no module named
- 1.导入模块import cv2 as cvimport numpy as np 2.OpenCV绘图大致步骤OpenCV 图形绘制步骤(1