【原】JavaScript 中类的定义和使用

javascript 对象都是由 Object “继承”来的, js语言为我们提供了一系列的内置“类”, 如Function, Array 等
其中Function又分为普通函数和构造函数两种。
使用 new 构造函数();的语法可以创建一个Object对象。

<html>
<head>
     <script language="javascript">
      // 先定义一个类, 一个Person类, 表示一个人
      function setName(new_name)
      {
               this.name = new_name;
      }
      function Person()
      {
              	this.myname = "zhangyu"; // 定义成员变量
                // 如果使用var myname = "zhangyu"; 则在new 对象后使用myname时获得undefined
               	this.myage = 21; // 定义成员变量
                this.setName_1 = function (new_name)  // 定义成员函数, 括号中放置的是参数,此种定义方式每个Person对象都会有一个方法(比较占用内存)
                { 
 	               this.myname = new_name; 
                } 
                this.setName_2 = setName; // 这样定义的成员函数所有的对象共享一个函数,节省内存, 但是这样不便于理解
      }
      function sayHello()
      {
           	 var p = new Person();
 	         window.alert(p.myname);
 	         p.setName_1("Qiaohuanhuan");
 	         window.alert(p.myname);
 	         p.setName("Zhangyu");
                 window.alert(p.myname);
      }
 
      </script>
</head>
<body onload="sayHello()">
      <p class="mystyle">
      这是一行文字
 
</body>
<html>

一点小理解: javascript中所有的对象都是Object对象的实例, var my_obj = new MyObj(); 实际上是使用 function MyObj(){} 作为构造函数创建一个对象, 因此, 在函数中使用 var name = “zhangyu”; 的函数创建出来的对象没有name属性, 而对象的属性应该使用 this.name = “zhangyu”; 定义。

此条目发表在 HTML/Javascript/CSS 分类目录,贴了 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>