《悟透JavaScript》之 甘露模型(新)
在上面的示例中,我们定义了两个语法甘露,一个是Class()函数,一个是New()函数。使用Class()甘露,我们已经可以用非常优雅的格式定义一个类。例如前例中的:
var
Employee
=
Class(Person,
//
派生至Person类
{
Create:
function
(name, age, salary)
{
Person.Create.call(
this
, name, age);
//
调用基类的构造函数
this
.salary
=
salary;
}
,
ShowMeTheMoney:
function
()
{
alert(
this
.name
+
"
$
"
+
this
.salary);
}
}
);
这种类的写法已经和C#或Java的格式非常相似了。不过,其中调用基类的构造函数还需要用“Person.Create.call(this,
name,
age)”这样的方式来表达。这需要用到基类的类名,并要用call这种特殊的方式来传递this指针。这和C#的base()以及Java的
super()那样的简介调用方式比起来,还需要进一步美化。
而New()函数的使用也不是很爽。前例中需要用“New(Employee, ["Steve Jobs", 53,
1234])”这样的方式来创建对象,其中第一个参数是类,其他构造参数需要用数组包起来。这和JavaScript本来那种自然的“new
Employee("Steve Jobs", 53, 1234)”比起来,丑陋多了。这也需要美化。
为了实现这些美化工作,我们需要回顾一下new一个对象的实质。前面我们说过:
var anObj = new aClass();
相当于先创建一个空白对象anObj,然后将
相关文档:
marquee滚动标签的javascript(jquery)替代品:jquery.marquee插件(http://remysharp.com/tag/marquee) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999 ......
1
、编写
js
函数
<script
type="text/javascript">
function display(id){
var
traget=document.getElementById(id);
if(traget.style.display=="none"){
&nbs ......
a href="#"> 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP
<a href="javascript:void(0)" onClick="window.open()"> 点击链接后,页面不动,只打开链接
<a href="#" onclick="javascript:return false;"> 作用同上,不同浏览器会有差异。
点击链接后,不想使页面滚到页首,就用href="javascript:v ......
dp.SyntaxHighlighter
dp.SyntaxHighlighter,这东西yahoo都在用它,支持多种语言。
只需要将代码放到<textarea>标签内,它就可以自动根据class指定的语言来对textarea内容进行着色,还提供了行号、打印等功能。如:
Xml代码
<TEXTAREA class=java name=code><br/> // code here ......
对于1个单引号,则转义该单引号
对于1个反斜杠跟1个单引号,则不管它。
对于2个及以上的反斜杠加一个单引号,则分别对每个反斜杠和单引号都进行转义,即 使反斜杠数目保持不变, 并转义单引号。
/// <summary>
/// 对于单引号而言,若前面有偶数个反斜杠则异常,奇数个反斜杠则正常
/// < ......