⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 day4_6.html

📁 对javascript的简单介绍和讲解
💻 HTML
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312-80">
<style type="text/css">
<!--
a:link {  color: blue; text-decoration: none}
a:visited {  color: purple; text-decoration: none}
a:hover {  color: #CC0033; text-decoration: underline}
-->
</style>
<title>JavaScript高级教程</title>
<script language="JavaScript">

<!-- hide me



// timedAlert

// this just calls a 

function timedAlert()

{

	var the_timeout = setTimeout("alertAndRedirect();", 3000);

}



function alertAndRedirect()

{

	alert('OK! Exhale!');

	window.location.replace("day3_2.html");

}



// show me -->

</script>
</head>

<body topmargin="1" leftmargin="2">

<table border="0" width="591" cellspacing="0">
  <tr> 
    <td bgcolor="#ffff99" width="451">JavaScript高级教程 - 第四课</td>
  </tr>
  <tr> 
    <td bgcolor="#FF6600" width="451"><a href="mailto:thau@wired.com">Thau</a></td>
  </tr>
</table>
<div align="left">

  <table border="0" width="630" cellspacing="0">
    <tr> 
      <td width="458" valign="top" align="left" rowspan="2"><small><small><br>
        </small></small><strong>第六页:创建你自己的对象</strong>
        <p>对象的概念使你能够以一种更易理解的方式去组织你的信息。让<br>
          我们从创建一个雇员数据库的简单例子开始,然后利用我们课程<br>
          里学到的东西去实现一个比这复杂得多的,和我们的生活有关<br>
          的事:编写一个<font face="verdana, arial, geneva, sans-serif">JavaScript</font>虚拟宠物。</p>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>为了这个练习,让我们先不管如何把现代资本主义社会工人进行<br>
          对象化的方方面面,我们把每一个雇员当作一个具有属性与方法<br>
          的对象。每一个雇员有一个名字,职务,薪水,生日,地址等<br>
          属性。雇员可以被提升,去休假,换部门或者去下厨等。对象包<br>
          括了所有这些信息,而雇员对象就象是一个模板。每个雇员都有<br>
          这些属性如姓名,职务等,是属性值的不同使得不同的雇员得以<br>
          区分开来。</p>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>要创建你自己的对象,你需要从模板开始。在面向对象编程中模<br>
          板也称为对象的构造器。一旦你建立了模板,你就可以创建对象<br>
          的实例,就象这样:</p>
        <pre>
    <font face="verdana, arial, geneva, sans-serif"></font>
<font face="verdana, arial, geneva, sans-serif">var fred = new Employee(&quot;Fred Flintstone&quot;, 33, &quot;Surface Miner&quot;, 20000);
var barney = new Employee(&quot;Barney Rubble&quot;, 33, &quot;Slacker&quot;, 40000);
var boss = new Employee(&quot;Mr. Slate&quot;,50, &quot;CEO&quot;, 1000000);
</font></pre>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>如果这几个实例已被创建,你可以做这些事情:</p>
        <blockquote> 
          <pre>
      <font face="verdana, arial, geneva, sans-serif"></font>
<font face="verdana, arial, geneva, sans-serif">barney.promotion(&quot;Chief Slacker&quot;,&quot;10&quot;);
fred.fired();
boss.vacation(365);
</font></pre>
        </blockquote>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>这样就把<font face="verdana, arial, geneva, sans-serif">Barney</font>提升为‘首席懒鬼’并增加<font face="verdana, arial, geneva, sans-serif">10%</font>的薪水,炒掉<br>
          <font face="verdana, arial, geneva, sans-serif">Fred</font>,让首席执行官休上一年的假。</p>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>当然你得自己从属性开始编写对象构造器和方法,这里是雇员的<br>
          构造器:</p>
        <blockquote> 
          <pre>
      <font face="verdana, arial, geneva, sans-serif"></font>
<font face="verdana, arial, geneva, sans-serif">function Employee(name, age, title, salary)
{
	this.name = name;
	this.age = age;
	this.title = title;
	this.salary = salary;
}
</font></pre>
        </blockquote>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>请注意构造器其实就是一个函数。在函数中我们需要给<br>
          <font face="verdana, arial, geneva, sans-serif"><tt>this.property_name</tt></font>赋值,我们不直接给<font face="verdana, arial, geneva, sans-serif">age</font>赋值,而是给<font face="verdana, arial, geneva, sans-serif"><tt>this.age</tt></font><br>
          赋值,对姓名,职务等也一样。</p>
        <p> <font face="verdana, arial, geneva, sans-serif" size="3"></font><font size="3">你可以给构造函数传递参数 
          ,当象下面这个语句这样调用构造函<br>
          数时:<br>
          <br>
          </font><font face="verdana, arial, geneva, sans-serif" size="2">var 
          barney = new Employee(&quot;Barney Rubble&quot;, 33, &quot;Slacker&quot;, 
          40000);</font><font face="verdana, arial, geneva, sans-serif" size="3"><br>
          </font></p>
        <p> <font face="verdana, arial, geneva, sans-serif" size="3">... </font><font size="3">然后在构造函数中的这条语句:</font></p>
        <font size="3">
        <blockquote> 
          <pre>
      <font face="verdana, arial, geneva, sans-serif"></font>
<font face="verdana, arial, geneva, sans-serif">this.name = name;
</font></pre>
        </blockquote>
        <p> <font face="verdana, arial, geneva, sans-serif">... </font>我们就把这个雇员的名字设成了传递给雇员构造函数的参数<br>
          的值。</p>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>构造函数中使用的 <font face="verdana, arial, geneva, sans-serif">&quot;this&quot; 
          </font>关键字的原因是你可能一次创建多个雇<br>
          员实例。 为了让方法和构造函数正确工作,必须 清楚地告诉它<br>
          们到底是在对哪个雇员进行操作。这里的<font face="verdana, arial, geneva, sans-serif">&quot;this&quot;</font>所指的是 
          <font face="verdana, arial, geneva, sans-serif">is: </font>你<br>
          正在创建的实例。下面我们讲讲方法的例子或许能让你理解得<br>
          更好。</p>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>方法只不过是加在对象上的函数。首先定义函数,然后把函数加<br>
          载到对象上(在对象的构造函数中)我们以<font face="verdana, arial, geneva, sans-serif"><tt>promotion()</tt> 
          </font>方法<br>
          为例:</p>
        <blockquote> 
          <pre>
      <font face="verdana, arial, geneva, sans-serif"></font>
<font face="verdana, arial, geneva, sans-serif">function promotion(new_title,percent_raise)
{
	var salary_increase = this.salary * percent_raise;
	this.salary = this.salary + salary_increase;
	this.title = new_title;
}
</font></pre>
        </blockquote>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>这个函数计算雇员的新工资并把新工资和新职位赋给雇员。<br>
          <font face="verdana, arial, geneva, sans-serif">JavaScript</font>通过使用<font face="verdana, arial, geneva, sans-serif">&quot;this&quot;</font>关键字知道你说的是哪个雇员,所以如<br>
          果有这个语句:</p>
        <blockquote> 
          <pre>
      <font face="verdana, arial, geneva, sans-serif"></font>
<font face="verdana, arial, geneva, sans-serif">barney.promotion(&quot;Chief Slacker&quot;,10);
</font></pre>
        </blockquote>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>那 <font face="verdana, arial, geneva, sans-serif">&quot;this&quot;</font>就是指 
          <font face="verdana, arial, geneva, sans-serif">is Barney. </font>这看起来确实有一点怪异,可能要<br>
          一段时间去适应它,但是一旦你开始以对象的眼光去思考,你马<br>
          上就能养成习惯了。</p>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>创建对象的最后一步就是把方法连到对象上。我刚才提到了,你<br>
          要在构造函数中做这个。你写完提升方法后,如果要把它连到雇<br>
          员对象上,就在构造函数里加上:</p>
        <blockquote> 
          <pre>
      <font face="verdana, arial, geneva, sans-serif"></font>
<font face="verdana, arial, geneva, sans-serif">this.promotion = promotion;
</font></pre>
        </blockquote>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>下面是增加了提升方法的构造函数:</p>
        <blockquote> 
          <pre>
      <font face="verdana, arial, geneva, sans-serif"></font>
<font face="verdana, arial, geneva, sans-serif">function Employee(name, age, title, salary)
{
	this.name = name;
	this.age = age;
	this.title = title;
	this.salary = salary;

	this.promotion = promotion;
}

function promotion(new_title,percent_raise)
{
	var salary_increase = this.salary * percent_raise;
	this.salary = this.salary + salary_increase;	
	this.title = new_title;
}

</font></pre>
        </blockquote>
        <p> <font face="verdana, arial, geneva, sans-serif"></font>如要增加其它信息,比如雇员的办公室,可以增加一个名为<br>
          <font face="verdana, arial, geneva, sans-serif">&quot;office&quot;</font>的属性。然后如果你想记录雇员换办公室的情况,你就创<br>
          建一个<font face="verdana, arial, geneva, sans-serif"><tt>transfer()</tt></font>方法<font face="verdana, arial, geneva, sans-serif">. 
          </font></p>
        </font>
        <p><font size="3"> <font face="verdana, arial, geneva, sans-serif"></font>明白了吗<font face="verdana, arial, geneva, sans-serif">? 
          </font>现在来看看更复杂和重要的面向对象的<font face="verdana, arial, geneva, sans-serif">JavaScript, 
          </font>去<br>
          创建一个虚拟宠物。<a href="day4_7.html">&gt;&gt;</a></font></p>
        <p align="left"><font face="宋体" size="3" color="#000000"><strong>JavaScript高级教程</strong></font><font color="#FF0000" face="宋体" size="3"><br>
          </font><font size="3"><font color="#FF3300">第一页</font> <a href="day4_1.html"><font face="verdana, arial, geneva, sans-serif">JavaScript</font>高级教程<font face="verdana, arial, geneva, sans-serif">- 
          </font>第<font face="verdana, arial, geneva, sans-serif">4</font>天</a> 
          <br>
          <font color="#FF3300">第二页 </font><a href="day4_2.html">图象映射与<font face="verdana, arial, geneva, sans-serif">JavaScript</font></a><font face="verdana, arial, geneva, sans-serif"><br>
          </font><font color="#FF3300">第三页 </font><a href="day4_3.html">预装图象 - 
          是什么<font face="verdana, arial, geneva, sans-serif">?</font></a><font face="verdana, arial, geneva, sans-serif"><br>
          </font><font color="#FF3300">第四页 </font><a href="day4_4.html">预装图象 - 
          怎么做?</a><font face="verdana, arial, geneva, sans-serif"><br>
          </font><font color="#FF3300">第五页 </font><a href="day4_5.html">对象的优点</a><br>
          <font color="#FF3300">第六页 </font>创建你自己的对象<br>
          <font color="#FF3300">第七页 </font><a href="day4_7.html">你的面向对象的虚拟宠物</a><br>
          <font color="#FF3300">第八页 </font><a href="day4_8.html">计算字符串</a><br>
          <font color="#FF3300">第九页 </font><a href="day4_9.html">获取难以索引的对象</a><br>
          <font color="#FF3300">第十页 </font><a href="day4_10.html">另一种获取难以索引的对象的手段</a><br>
          <font color="#FF3300">第十一页 </font><a href="day4_11.html">第四天课程复习</a></font></p>
        <p>[<a href="day1_1.html">第1课</a>][<a href="day2_1.html">第2课</a>][<a href="day3_1.html">第3课</a>][第4课][<a href="day5_1.html">第5课</a>]</p>
        <hr align="left">
        <!--webbot bot="Include" U-Include="../../copyright.html" TAG="BODY" startspan --> 
        <p><font face="verdana, arial, geneva, sans-serif" size="2"><a href="http://phtshop.yeah.net" target="_top">本文根据 
          网猴 相关文章改编,版权归原作者所有。</a> </font><font color="#000000"><span class="smallfont"></span></font></p>
        <!--webbot bot="Include" endspan i-checksum="15926" --> </td>
    </tr>
    <tr> </tr>
  </table>
</div>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -