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/

时间: 2024-07-30 10:17:52

3种创建、调用JavaScript对象的方法的相关文章

java反射调用某个对象的方法

// 反射调用某个对象的方法 public Object invokeMethod(Object methodObject, String methodName, Object[] args) throws Exception { Class ownerClass = methodObject.getClass(); Class[] argsClass = new Class[args.length]; for (int i = 0, j = args.length; i < j; i++) {

ASP.NET调用javascript脚本的方法总结

ASP.NET本身就提供了多种调用javascript脚本的方法,本文总结了六种调用方法,大家根据自己的使用习惯可以选择相应的调用方式了! 1.直接在前台调用 javascript 函数 很简单,在 head 元素之间加入 script 元素,将 type 元素设置为 " text/javascript " 如: <head runat="server"> <script type="text/javascript" >

创建JavaScript对象的方法

方法一:object类型方法 var  person = new Object(); person.name="alisa"; person.age="16"; person.sex="female"; person.sayname = function(){ return this.name; } 方法二:对象字面量方法 var person={ name:"alisa", age:16, sex:"female&

不同浏览器创建 ajax XMLHTTPRequest对象的方法及兼容性问题总结

XMLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始. 了解XMLHttpRequest 对象就先从创建XMLHttpRequest 对象开始,在不同的浏览器中创建XMLHttpRequest 对象使用不同的方法: 先看看IE创建XMLHttpRequest 对象的方法(方法1): var xmlhttp=ActiveXobject("Msxml12.XMLHTTP");//较新的IE版本创建Msxml12.XMLH

两种创建私有变量、私有方法的方法

在构造函数中定义特权方法: 利用函数的块级作用域,然后在里面创建了两个特权方法,两个特权方法作为构造函数的闭包可以访问到私有变量name,所以创建构造函数的实例之后只能通过这两个特权方法访问到name这个私有变量(并且每个实例的name不是同一个) 在私有作用域中创建构造函数 首先创建了一个私有作用域,然后在里面创建了一个构造函数,不是用声明式而是用函数表达式创建了一个私有作用域的闭包,这样Person就是一个全局变量,然后通过原型创建了两个特殊方法,然后私有变量name就只能通过这两个方法访问

给JavaScript 对象添加方法

方法只不过是附加在对象上的函数. 在构造器函数内部定义对象的方法: 1 <!DOCTYPE html> 2 <html> 3 <body> 4 <script> 5 function person(firstname,lastname,age,eyecolor) 6 { 7 this.firstname=firstname; 8 this.lastname=lastname; 9 this.age=age; 10 this.eyecolor=eyecolor

一种SpringMVC调用Javascript的方法

在spring的controller里面,一般是进行业务逻辑的处理,组织数据模型,然后选择适当的显示模版进行展示,这种情况下,我们可以事先做一个js的模版,然后controller根据不同的参数调用此显示页面进行Javascript调用,但是现在还有另外一种方法更加直接,技术关键点是: 1.返回字符串,并且是ResponseBody 2.设置MIME type是 text/html 代码如下: @ResponseBody @RequestMapping(value="/callJs",

原生javascript对象的方法

create Object.create() 方法创建一个拥有指定原型和若干个指定属性的对象. Object.create(proto [, propertiesObject ]) proto 为新创建对象的原型对象,设置为null可创建没有原型的空对象. propertiesObject 包涵若干个属性的描述符和defineProperties的第二个参数一样. Object.create(Object.prototype, { a: { value: 1, writable: true, c

javascript对象bind()方法兼容处理

bind() 函数在 ECMA-262 第五版才被加入:它可能无法在所有浏览器上运行.你可以部份地在脚本开头加入以下代码,就能使它运作,让不支持的浏览器也能使用 bind() 功能 if (!Function.prototype.bind) { Function.prototype.bind = function(oThis) { if (typeof this !== "function") { // closest thing possible to the ECMAScript