当前位置: 首页 > news >正文

在Javascript定义对象

本文摘自: http://www.chenjiliang.com/article/View.aspx?ArticleID=2430

一、在Javascript中我们可以直接这样定义对象:
js.gif复制   Save.jpg保存
var xiaoxing = 
{       
   grade:1,
   name : "xiaoxing",
   age:27,
   sex:"男",
      
   speak:function(words)
   {
      alert(this.name+"说:"+words+"!");
   },

   improve:function()
   {
       this.grade++;
   }
}

这样,我就变成了一个对象了,你可以让我跟你说一句话
js.gif复制   Save.jpg保存
xiaoxing.speak("欢迎来到cnblogs的supersun的天空");
while(i have friends)
{
   xiaoxing.improve();
}



还不够面向对象,最好的做法是用一个函数来定义对象,在用他的prototype原型对象的方式来定义其属性,事件等,方便继承扩展。 
htm.gif阅读 edithtml.gif编辑 runhtml.gif运行 htm.gif复制   Save.jpg保存
<script language="javascript" type="text/javascript">
//创建原型对象,定义属性、方法、及对象事件等。 
Student.prototype=
{ 
    _name:null, 
    _age:null, 
    _sex:null, 
    ShowName:function()
    { 
        alert("Name:"+ this._name +"\n" + "Age:" + this._age + "\n" + "Sex:"+ this._sex); 
    } 
} 
//专门用一个函数来初始化对象。 
function Student(name,age,sex)
{ 
    this._name=name; 
    this._age=age; 
    this._sex=sex; 
} 

var student=new Student("Young",25,"男"); //实例化 
student.ShowName(); //调用对象方法
</script>
<script language="javascript" type="text/javascript"> //创建原型对象,定义属性、方法、及对象事件等。 Student.prototype= { _name:null, _age:null, _sex:null, ShowName:function() { alert("Name:"+ this._name +"\n" + "Age:" + this._age + "\n" + "Sex:"+ this._sex); } } //专门用一个函数来初始化对象。 function Student(name,age,sex) { this._name=name; this._age=age; this._sex=sex; } var student=new Student("Young",25,"男"); //实例化 student.ShowName(); //调用对象方法 </script>



htm.gif阅读 edithtml.gif编辑 runhtml.gif运行 htm.gif复制   Save.jpg保存
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Generator" CONTENT="EditPlus"> 
<META NAME="Author" CONTENT=""> 
<META NAME="Keywords" CONTENT=""> 
<META NAME="Description" CONTENT=""> 
</HEAD> 

<BODY> 
<script language="javascript" type="text/javascript">
function Student(name,age,sex) 
{ 
    this._name=name; 
    this._age=age; 
    this._sex=sex; 
    this.ShowName=function() 
    { 
        alert("Name:"+ this._name +"\n" + "Age:" + this._age + "\n" + "Sex:"+ this._sex); 
    }; 
} 

var student=new Student("Young",25,"男"); //实例化 
student.ShowName(); //调用对象方法
</script> 
</BODY> 
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <script language="javascript" type="text/javascript"> function Student(name,age,sex) { this._name=name; this._age=age; this._sex=sex; this.ShowName=function() { alert("Name:"+ this._name +"\n" + "Age:" + this._age + "\n" + "Sex:"+ this._sex); }; } var student=new Student("Young",25,"男"); //实例化 student.ShowName(); //调用对象方法 </script> </BODY> </HTML>



htm.gif阅读 edithtml.gif编辑 runhtml.gif运行 htm.gif复制   Save.jpg保存
<script type="text/javascript">
var person = new Function();//或var person = function(){}都可以 
person.prototype={ 
    grade:0, 
    age:0, 
    sex:null, 
    name:null, 
    speak:function(words) 
    { 
        alert(this.name+"说:"+words+"!"); 
    }, 
    init:function(_grade,_age,_sex,_name) 
    { 
        this.grade = _grade;this.age=_age;this.sex=_sex;this.name=_name; 
    } 
} 
var xiaoxing = new person(); 
xiaoxing.init("10","27","男","xiaoxing"); 
xiaoxing.speak("hello everybody");
</script>
<script type="text/javascript"> var person = new Function();//或var person = function(){}都可以 person.prototype={ grade:0, age:0, sex:null, name:null, speak:function(words) { alert(this.name+"说:"+words+"!"); }, init:function(_grade,_age,_sex,_name) { this.grade = _grade;this.age=_age;this.sex=_sex;this.name=_name; } } var xiaoxing = new person(); xiaoxing.init("10","27","男","xiaoxing"); xiaoxing.speak("hello everybody"); </script>

这里采用init来初始化定义了一个对象,当然我们还可以在function(){}这样写
js.gif复制   Save.jpg保存
var person = function(_grade,_age,_sex,_name){this.grade = _grade;this.age=_age;this.sex=_sex;this.name=_name;}

这样我们就可以写成如下代码 
希望更多的朋友发表自己的意见和心得 
js.gif复制   Save.jpg保存
var xiaoxing = new person("10","27","男","xiaoxing"); 
xiaoxing.speak("hello everybody");

相关文章:

  • IE的有条件注释详解(附实例代码)
  • [数据恢复答疑]误GHOST之后的数据还能恢复吗?
  • 如何解决IE部分图片不显示
  • 配置ASA IPSec ××× With OSPF
  • 图片上传时应该注意的内容
  • 学习Unix下C编程的实例
  • css学习ing
  • 域控制器之操作主机中应注意的一些常见问题
  • 一个让人遗忘的角落—Exception(二)
  • 常用JS函数之二(页面验证等)
  • CISCO认证体系专题
  • IT民工:我的明天在哪里?
  • mysql日志生成
  • 245566
  • 解决使用nvelocity时候template文件里面包含中文输出结果时候出现乱码的问题
  • [deviceone开发]-do_Webview的基本示例
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Hibernate【inverse和cascade属性】知识要点
  • js数组之filter
  • js作用域和this的理解
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Markdown 语法简单说明
  • mockjs让前端开发独立于后端
  • mysql 数据库四种事务隔离级别
  • PaddlePaddle-GitHub的正确打开姿势
  • Python爬虫--- 1.3 BS4库的解析器
  • python学习笔记 - ThreadLocal
  • REST架构的思考
  • SAP云平台里Global Account和Sub Account的关系
  • Sequelize 中文文档 v4 - Getting started - 入门
  • SQL 难点解决:记录的引用
  • Swift 中的尾递归和蹦床
  • vue2.0项目引入element-ui
  • 如何胜任知名企业的商业数据分析师?
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 一个JAVA程序员成长之路分享
  • 原生Ajax
  • C# - 为值类型重定义相等性
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #etcd#安装时出错
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #微信小程序:微信小程序常见的配置传值
  • %check_box% in rails :coditions={:has_many , :through}
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (1)(1.13) SiK无线电高级配置(六)
  • (待修改)PyG安装步骤
  • (一)80c52学习之旅-起始篇
  • (译)计算距离、方位和更多经纬度之间的点
  • (转载)Google Chrome调试JS