3种创建、调用JavaScript对象的方法
hey you guys,两个月没有写技术博客了。作为一名有理想、有抱负的程序员,两个月不写技术博客,真该打。业精于勤,荒于嬉。行成于思,毁于随。勤奋是必不可少的,今后养成一周至少一篇博客的习惯。好了,不瞎扯了,书归正传。 今天在做项目时,遇到了需要创建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();) //使用对象 此时页面会出现:我是女生。
大家看这段儿代码,是不是与我们的方法一很像呢?但是,它可像方法一那样工作的。方法一,用一次对象,就要创建一次对象。这个方法,创建一次对象,就可以永久使用。所以,这种方式,很类似于设计模式中的单例模式。
原文地址:http://www.phpied.com/3-ways-to-define-a-javascript-class/
3种创建、调用JavaScript对象的方法的更多相关文章
- Javascript对象的方法赋值
		Javascript对象编程学习中,一直不能很好的掌握对象的属性(property)和方法(method).今天在写代码过程中,又犯了一个低级错误. <!DOCTYPE html> < ... 
- 三种dedecms调用相关文章的方法
		在文章的末尾或侧边栏添加相关文章可以提高用户的黏度,提高pv,增加se的好印象(哈哈),那么dedecms如何调用相关文章呢?有三种方法可以实现. 第一种dedecms调用相关文章的方法,用默认的li ... 
- 错误笔记 对象为null时调用改对象的方法会报错
		对象为null时调用改对象的方法会报错 
- java反射调用某个对象的方法
		// 反射调用某个对象的方法 public Object invokeMethod(Object methodObject, String methodName, Object[] args) thr ... 
- 不同浏览器创建 ajax XMLHTTPRequest对象的方法及兼容性问题总结
		XMLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始. 了解XMLHttpRequest 对象就先从创建XMLHttpReques ... 
- javascript对象与方法
		对象与方法 一.数组(Array) 1.使用new关键字创建数组 var box = new Array(); //创建了一个数 ... 
- 创建javaScript对象的方法
		一.工厂模式 function person (name,age) { var p=new Object(); p.name=name; p.age=age; p.showMessage=functi ... 
- 一种SpringMVC调用Javascript的方法
		在spring的controller里面,一般是进行业务逻辑的处理,组织数据模型,然后选择适当的显示模版进行展示,这种情况下,我们可以事先做一个js的模版,然后controller根据不同的参数调用此 ... 
- Selenium实战(二)——调用JavaScript之execute_script()方法
		1.浏览器滚动条的拖动,不能依靠WebDriver提供的API来实现,用于调整浏览器滚动条位置的JavaScript代码如下: window.scrollTo(0,450); window.scrol ... 
随机推荐
- c#播放声音文件
			C#中声音的播放主要有三种方法: 1.使用API函数. 2.使用SoundPlayer类播放. 3.使用DirectX进行播放. 一.使用API函数进行播放. windows操作系统中的winmm.d ... 
- 测试RegExp对象的属性
			//测试RegExp对象的属性function testRegExpProperty(){ var regexp = /abc/; //regexp.ignoreCase = true; //无效 c ... 
- centOS上安装redis
			1.安装tcl支持 yum install tcl 2.安装redis我们以最新的2.8.9为例 $ wget http://download.redis.io/releases/redis-2.8. ... 
- JSP网页防止sql注入攻击
			SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使 ... 
- Python文件处理之文件打开方式(一)
			Python中打开一个文件是同过open函数来打开的,并返回一个文件对象,以下为open函数的参数: open(name[, mode[buf]]) name:文件路径 mode:打开方式 buf:缓 ... 
- IRP派遣操作
			IRPTrace工具跟踪IRP 派遣函数(Dispathc Funtion)是windows驱动中的重要概念.驱动程序的主要功能是负责处理I/O请求,其中大部分I/O请求是在派遣函数中处理的.用户模式 ... 
- HttpClient3.1 警告: Cookie rejected:
			四月 , :: 下午 org.apache.commons.httpclient.HttpMethodBase processCookieHeaders 警告: Cookie rejected: : ... 
- ural 1207  Median on the Plane
			极角排序 #include <cstdio> #include <cstring> #include <algorithm> #include <cmath& ... 
- libCurl的C++引用
			I believe I have gotten LibCurl to work with Visual Studio 2013 now. Persistence ftw! Although, afte ... 
- [LeetCode] 55. Jump Game 解题思路
			Given an array of non-negative integers, you are initially positioned at the first index of the arra ... 
