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

📄 day4_7.html

📁 JavaScript高级教程电子学习资料
💻 HTML
📖 第 1 页 / 共 2 页
字号:
                      <li> <font face="verdana, arial"><tt>feed()</tt> - </font>减少饥饿 
                      </li>
                      <li> <font face="verdana, arial"><tt>medicate()</tt> - </font>增加一点健康 
                      </li>
                      <li> <font face="verdana, arial"><tt>makeOlder()</tt> - 
                        </font>宠物长大 </li>
                      </font>
                      <li><font size="3"> <font face="verdana, arial"><tt>display()</tt> 
                        -</font></font><font face="verdana, arial" size="3"> </font><font size="3">在状态框里显示宠物的信息。 
                        </font></li>
                    </ul>
                    <p> <font face="verdana, arial" size="3"></font><font size="3">把这些记在脑子里,我们来创建宠物对象。首先我们来写一<br>
                      个构造函数。 这里就是最基本的构造函数(即还没有加任何<br>
                      方法的代码):</font>
                  </td>
                </tr>
              </table>
            </td>
          </tr>
        </table>
        <blockquote> 
          <pre><big>
</big>function Pet(the_pet_name, the_form_number)
{
	this.age = 0;
	this.hunger = Math.random() * 5;  // random number between 0 and 4.99
	this.health = Math.random() * 5 + 1 ;  // random number between 1 and 3.99
	this.happiness = Math.random() * 5;
	this.pet_name = the_pet_name;
	this.form_number = the_form_number;
	window.document.forms[the_form_number].pet_name.value = the_pet_name;
}
</pre>
        </blockquote>
        <table width="458">
          <tr> 
            <td width="454"><font size="3">这个构造函数有两个参数:宠物名字和要显示其信息的表单号。<br>
              要创建两个宠物,我们这么做:</font>
              <blockquote>
                <pre>
          <font face="verdana, arial" size="3"></font><font size="3">
var pet1 = new Pet(&quot;barney&quot;,0);
var pet2 = new Pet(&quot;betty&quot;,1);
</font></pre>
              </blockquote>
              <p> <font size="3">我们把构造函数写的能使每个宠物都不一样。用了<br>
                <font face="verdana, arial"><tt>Math.random()</tt> </font>方法来产生一个<font face="verdana, arial">0</font>到<font face="verdana, arial">1</font>之间的随机数,<br>
                <font face="verdana, arial"><tt>Math.random()</tt></font>方法并不是完全随机的,但在这里够用了,它<br>
                能保证给每个产生的宠物一个不同的饥饿,健康和快乐的初<br>
                始值。宠物的名字从参数传递过来,年龄则设为<font face="verdana, arial">0</font>。 最后两行<br>
                设定了宠物使用的表单号,并把宠物的名字写到相应的文本<br>
                框去。记住:一个页面的第一个表单可以被索引为<br>
                </font><font size="4" face="verdana, arial"><tt>window.document.forms[0]</tt></font><font face="verdana, arial" size="3">,</font><font size="3">第二个可以索引为<br>
                <font face="verdana, arial"><tt>window.document.forms[1]</tt>, 
                </font>依次类推。</font></p>
              <font size="3">
              <p> <font face="verdana, arial"></font>我们已建立好了属性,现在来看看方法。我并不打算把每个方<br>
                法都展开讲,而只把其中几个讲一讲:
              </font></td>
          </tr>
        </table>
        <pre>function feed()
           {
                var meal_quality = Math.random() * 2;
                this.hunger = this.hunger - meal_quality;
              if (this.hunger &lt;0)
                        {
                              this.hunger = 0;
                         }
                              this.display();
            }

</pre>
        <table width="451">
          <tr> 
            <td width="447"><font size="3">这是一个喂宠物的方法。如果你调用了 <font face="verdana, arial"><tt>pet1.feed()</tt></font>方法<font face="verdana, arial">,</font>首<br>
              先它会产生一个<font face="verdana, arial">0</font>到<font face="verdana, arial">2</font>之间的数,然后把饥饿度减去这个数。<br>
              我们确使饥饿度不小于<font face="verdana, arial">0</font>,然后调用显示方法去显示信息。 
              <p><font face="verdana, arial"></font><font size="3">显示方法的代码如下:</font>
              </font></td>
          </tr>
        </table>
        <blockquote> 
          <pre>function display()
{
        var the_string = &quot;&quot;;

        if (this.health &lt; min_health)
        {
                the_string = this.pet_name + &quot; IS DEAD!&quot;;
        } else {
                the_string += &quot;Happiness &quot; + parseInt(this.happiness);
                the_string += &quot;.  Health: &quot; + parseInt(this.health);
                the_string += &quot;.  Hunger: &quot; + parseInt(this.hunger);
                the_string += &quot;.  Age: &quot; + parseInt(this.age);
                the_string += &quot;.&quot;;
        }

        window.document.forms[this.form_number].pet_status.value = the_string;
}<big>       </big></pre>
        </blockquote>
        <table width="463">
          <tr> 
            <td width="459">This这个方法建立了一个字符串并把它显示到正确的文本框里,<br>
              表单号属性保证了状态信息放到合适的文本框。每当我们创建<br>
              一个宠物,我们就给它一个表单号 - 第一个宠物的表单号是0,<br>
              第二个宠物的表单号是1。使用这种表单号我们知道第一个宠物<br>
              的状态应放在 window.document.forms[0].pet_status.value,<br>
              而第二个宠物的状态应放在window.document.forms<br>
              [1].pet_status.value. 这个方法里的最后一行根据<br>
              this.form_number决定在哪个form放状态信息. 
              <p>这个方法里的另一个有趣的地方是 parseInt函数. 由于使用了<br>
                随机数,象健康和快乐的值可能是 2.738993720. 它们是实数,<br>
                但是显得有点长,所以parseInt函数把小数点后的数给拿掉了,<br>
                比如 parseInt(2.738)得到的结果是2。</p>
              <p>第三个有趣的方法是makeOlder().它把宠物年龄增加一岁并让<br>
                宠物更饿一点和更不高兴一点。这个方法通过setTimeout设成<br>
                每秒被调用一次(我们在第三天的课里曾讲过怎么做的):
            </td>
          </tr>
        </table>
        <blockquote> 
          <pre>
function makeOlder()
{

	var max_hunger = 5;
	var good_happiness = 5; 

	if (this.health &gt; min_health)
	{
			
		this.age +=1;
		this.happiness -= Math.random() * 2;
		this.hunger += Math.random() * 2;
		if (this.hunger &gt; max_hunger)
		{
			this.health -= Math.random() * 2;
			this.happiness -= Math.random() * 2;
		}

	}

	this.display();
}
</pre>
        </blockquote>
        <table width="463">
          <tr> 
            <td width="459">你能看到,这个方法把宠物的年龄增加一岁,把快乐值降低了<br>
              一个随机数,把饥饿度增加了一个随机数。然后又设定了一些<br>
              规则(这儿只示意了一个),如“如果宠物真的饿极了,就让<br>
              它不快乐一点和不健康一点。
              <p>既然我们已经有了这些方法,就把它放进到构造函数里去完成<br>
                整个的虚拟宠物对象的创建:
            </td>
          </tr>
        </table>
        <blockquote> 
          <pre>
function Pet(the_pet_name, the_form_number)
{
	this.age = 0;
	this.hunger = Math.random() * 5;  // random number between 0 and 4.99
	this.health = Math.random() * 3 +1 ;  // random number between 1 and 3.99
	this.happiness = Math.random() * 5;
	this.pet_name = the_pet_name;
	this.form_number = the_form_number;

	this.feed = feed;
	this.play = play;
	this.medicate = medicate;
	this.display = display;
	this.makeOlder = makeOlder;

	window.document.forms[the_form_number].pet_name.value = the_pet_name;
	this.display();
}
</pre>
        </blockquote>
        <table width="457">
          <tr> 
            <td width="453">最后设定让<tt>makeOlder()</tt>方法每三秒种就调用一次。这个函数<br>
              在你按动start按钮时被调用。</td>
          </tr>
        </table>
        <blockquote> 
          <pre><big>
</big>function moveTime()
{
	pet1.makeOlder();
	pet2.makeOlder();
	the_time_out = setTimeout(&quot;moveTime();&quot;, 3000);
}	
</pre>
        </blockquote>
        <table width="453">
          <tr> 
            <td width="449">你可以看到这个函数调用了每个宠物<tt>的makeOlder()</tt>方法,并<br>
              在三秒种后又调用了它自己。这个定时事件将一直持续下去<br>
              直到用户通过<tt>clearTimeout(the_time_out)</tt>把它取消掉.
              <p>这个例子几乎用到了我们今天讲到的所有内容。如果你理<br>
                解了,你对JavaScript已经了解的很深入了。在我们进入最<br>
                后一个话题之前再休息一下,最后要讲的是:利用JavaScript<br>
                的快捷方式获取很难索引的对象。<a href="day4_8.html">&gt;&gt;</a>
            </td>
          </tr>
        </table>
        <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><a href="day4_6.html">创建你自己的对象</a><br>
          <font color="#FF3300">第七页 </font>你的面向对象的虚拟宠物<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 + -