由于javascript中定义了一个函数就相当于定义了一个类,我们当然可以创建一个这个类的对象。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<script type="text/javascript">
function Person(name,age)
{
//定义了一个Person属性name
this.name = name;
//定义了一个Person属性age
this.age = age;
//定义了一个Person属性address
this.address = "harbin";
}
//创建了一个对象p1是Person对象
var p1 = new Person("maybe",21);
alert(p1.name+","+p1.address); var p2 = new Person("gossip",21);
p2.address = "shanghai";
alert(p2.name+","+p2.address);
</script>
</head>
<body>
</body>
</html>

虽然java和javascript根本是两种东西,但这段代码应该很好理解。

首先定义了一个Person类,定义类的属性的方法非常简单,直接用this就可以定义,但是不用this去定义,会出现什么后果呢?我们在类添加一个变量sex,赋值为"male"。

function Person(name,age)
{
//定义了一个Person属性name
this.name = name;
//定义了一个Person属性age
this.age = age;
//定义了一个Person属性address
this.address = "harbin"; var sex="male";
}

输出代码如下:

alert(p1.name+","+p1.address+","+p1.sex);

运行结果:

显示为undefined,未定义的原因是我们并没有用this来定义属性,如果只是简单的定义一个变量,那么它只是一个局部变量,并不是一个类的属性,这一点要弄明白。同理我们在类里随便定义函数,也是不能直接用的,比如:

function Person(name,age)
{
//定义了一个Person属性name
this.name = name;
//定义了一个Person属性age
this.age = age;
//定义了一个Person属性address
this.address = "harbin"; var sex="male"; function say()
{
alert("saying");
}
}

添加代码:

var p1 = new Person("maybe",21);
alert(p1.name+","+p1.address+","+p1.sex);
p1.say();

当运行到p1.say时,会出现错误:

对于变量我们已经解决了,那么方法怎么可以直接通过对象调用呢?

方法很简单。还是利用this:

function Person(name,age)
{
//定义了一个Person属性name
this.name = name;
//定义了一个Person属性age
this.age = age;
//定义了一个Person属性address
this.address = "harbin"; var sex="male"; this.say = function()
{
alert("saying");
}
}

定义一个Person的say属性指向function,这样就能成功调用函数了。

javascript简单对象创建的更多相关文章

  1. JavaScript中创建类,赋值给ajax中的data参数

    缘由:因为要给根据是否选中checkbox来动态增加ajax中data的属性(ajax的data属性格式的几种方法,参考http://www.jb51.net/article/46676.htm) d ...

  2. JavaScript中创建字典对象(dictionary)实例

    这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象 ...

  3. 简单使用JSON,JavaScript中创建 JSON 对象(一)

    JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. ...

  4. JavaScript Cookies,创建,获取cookies value

    什么是cookie? cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie ...

  5. JavaScript中创建数组的方式!

    JavaScript中创建数组的方式! 利用数组字面量 // 1 直接量 console.log(Array.prototype); var arr = [1, 2, 4, 87432]; // 注意 ...

  6. javascript面向对象创建高级 Web 应用程序

       目录 JavaScript 对象是词典 JavaScript 函数是最棒的 构造函数而不是类 原型 静态属性和方法 闭包 模拟私有属性 从类继承 模拟命名空间 应当这样编写 JavaScript ...

  7. Javascript对象创建

    一.概述 虽然对象字面量可以用来创建对象,但在创建多个类似的对象时,不够优雅,不符合DRY原则. 二.创建对象 有以下几种模式: 1.工厂模式 2.构造函数模式 3.原型模式 4.组合构造函数和原型模 ...

  8. javascript动态创建script标签,加载完成后调用回调

    代码如下: var head = document.getElementsByTagName('head')[0]; var script = document.createElement('scri ...

  9. JavaScript基础——创建函数

    JavaScript的最重要的一个部分是制作其他代码可以重用的代码.要做到这一点,你可以把代码组织成执行特定任务的函数.函数是结合在一个单一的块中,并给予一个名称的一系列代码语句.然后,你就可以通过引 ...

随机推荐

  1. leetcode first bad version python

    # The isBadVersion API is already defined for you. # @param version, an integer # @return a bool # d ...

  2. 使用cmake安装mysql5.5.13

    MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. 安装cmake : tar zxvf ...

  3. IS--A与 Has-a 区别

  4. ubuntu 安装ruby rails

    步骤0 - 安装系统需要的包 Mac 请安装 Xcode 开发工具,它将帮你安装好 Unix 环境需要的开发包 Ubuntu 请安装 $ sudo apt-get install -y build-e ...

  5. 源码学习之ASP.NET MVC Application Using Entity Framework

    源码学习的重要性,再一次让人信服. ASP.NET MVC Application Using Entity Framework Code First 做MVC已经有段时间了,但看了一些CodePle ...

  6. TFS Build Definition

    1.  TFS Build 简介 在团队项目开发中,编译常常是一个很困难的事情! 可能你会反问编译有什么难的?不就是右键,然后点击 Build/Rebuild, 或者直接按 F5 么?这都不会,真不知 ...

  7. Genymotion中SD卡目录在Eclipse中查看,以及创建SDCard

    咦?这后面似乎指向一个目录,我就去找/mnt/shell/emulated/0 Wow~好熟悉的目录..不熟悉的同学可以打开android模拟器的File Manger App 里面就是这些目录了,然 ...

  8. java.util.Timer分析源码了解原理

    Timer中最主要由三个部分组成: 任务 TimerTask .  任务队列: TaskQueue queue 和 任务调试者:TimerThread thread 他们之间的关系可以通过下面图示: ...

  9. poj2105---用指针对数组分块操作

    #include <stdio.h> #include <stdlib.h> ; int pow1(int a,int b) { ,i; ) ; ;i<b;i++) { ...

  10. JDBC增强

    JDBC增强 批处理:批量处理sql语句,比如批量添加用户信息. addBatch()  //pstmt.addBatch()  就是替换一条一条执行的execute****** executeBat ...