prototype of javascript,javascript 原型介绍和示例

自己写了一个例子,可以拷下来研究,:)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type"
            content="text/html; charset=UTF-8">
        <title>Study prototype of javascript</title>
        <style type="text/css">
span.blueOne {
    color: blue;
}

span.greyOne {
    color: #888888;
}

span.brownOne {
    color: brown;
}

span.boldOne {
    color: blue;
    font-weight: bold;
}

span.greenOne {
    color: green;
}
</style>
        <script type="text/javascript">
    //可以随意给内置对象、内置类型的对象或者自定义对象增加属性,如下给document增加了一个叫weihongsheng的属性
    document.weihongsheng="woyun";
   
    //方法Circle可以看作是一个自定义的构造函数,形成了一个类似于Circle的类,通过this.属性名=值,可以定义类的属性并赋于变量。
    function Circle(temp)
    {
       this.circleName = temp;
    }
    //声明一个Circle类型的变量d
    var first= new Circle('my type is Circle, and my name is first');
   
    //给自定义类型Circle的对象d设置增加自定义属性vv
    first.vv="heiehi";
   
    //但要是我们想给Circle的所有对象都增加一个属性的话,就要用下面这种形式了
    Circle.prototype.uu ="youyou";
   
    //声明一个tt_Circle的方法,因为下面把tt_Circle通过prototype变成了Circle类型的一个方法,所以它可以通过this访问Circle的变量
    function tt_Circle()
    {
       alert(this.circleName);
    }
   
    //把tt_Circle方法作为Circle.prototype的一个属性,此处命名为t
    Circle.prototype.t=tt_Circle;
   
    //我们就可以通过first.t()来调用tt_Circle方法   
</script>
    </head>
    <body>
        <p style="">
            <span class="brownOne">&lt;script type=</span><span class="blueOne">
                &quot;text/javascript&quot;</span><span class="brownOne">&gt;</span>
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="greyOne">//可以随意给内置对象、内置类型的对象或者自定义对象增加属性,如下给document增加了一个叫weihongsheng的属性</span>
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="brownOne">document</span>.weihongsheng =
            <span class="blueOne">&quot;woyun&quot;;</span><a href=""
                onclick="alert(document.weihongsheng);event.returnValue=false;">
                //点击此处调用alert.(document.weihongsheng);</a>
            <br>
            &nbsp;&nbsp;&nbsp;
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="greyOne">//方法Circle可以看作是一个自定义的构造函数,形成了一个类似于Circle的类,通过this.属性名=值,可以定义类的属性并赋于其值。</span>
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="boldOne">function</span> Circle
            <span class="boldOne">(</span>temp
            <span class="boldOne">)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;
                &nbsp;&nbsp; this.</span>circleName
            <span class="blueOne">=</span> temp;
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="boldOne">}</span>
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="greyOne">//声明一个Circle类型的变量first</span>
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="boldOne">var</span> first
            <span class="blueOne"> =</span>
            <span class="boldOne">new</span> Circle
            <span class="boldOne">(</span><span class="blueOne">'my type
                is Circle, and my name is first'</span><span class="boldOne">)</span>;
            <br>
            &nbsp;&nbsp;&nbsp;
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="greyOne">//给自定义类型Circle的对象d设置增加自定义属性vv,内置类型的对象类似</span> <br>
            &nbsp;&nbsp;&nbsp; first.vv
            <span class="blueOne">= &quot;heiehi&quot;;</span><a href=""
                onclick="alert(first.vv);event.returnValue=false;">
                //点击此处调用alert.(first.vv);</a>
            <br>
            &nbsp;&nbsp;&nbsp;
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="greyOne">//但要是我们想给Circle的所有对象都增加一个属性的话,就要用下面这种形式了,但内置类型中只有用new声明对象的类型才可以使用这种方式,如Array</span>
            <br>
            &nbsp;&nbsp;&nbsp; Circle.
            <span class="greenOne">prototype</span>.uu
            <span class="blueOne">= &quot;youyou&quot;;</span><a href=""
                onclick="alert(first.uu);event.returnValue=false;">
                //点击此处调用alert.(first.uu);</a>
            <br>
            &nbsp;&nbsp;&nbsp;
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="greyOne">//声明一个tt_Circle的方法,因为下面把tt_Circle通过prototype变成了Circle类型的一个方法,所以它可以通过this访问Circle的变量</span>
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="boldOne">function</span> tt_Circle
            <span class="boldOne">()</span>
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="boldOne">{<br>&nbsp;&nbsp;&nbsp;
                &nbsp;&nbsp; alert(this.</span>woyun
            <span class="boldOne">); <br>&nbsp;&nbsp;&nbsp; }</span>
            <br>
            &nbsp;&nbsp;&nbsp;
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="greyOne">//把tt_Circle方法作为Circle.prototype的一个方法,此处命名为t,内置类型类似</span>     <br>
            &nbsp;&nbsp;&nbsp; Circle.
            <span class="greenOne">prototype</span> .t=tt_Circle;
            <br>
            &nbsp;&nbsp;&nbsp;
            <br>
            &nbsp;&nbsp;&nbsp;
            <span class="greyOne">//我们就可以通过first.t()来调用tt_Circle方法</span><a
                href="" onclick="first.t();event.returnValue=false;">
                //点击此处调用first.t();</a>
            <br>
            <span class="brownOne">&lt;/script&gt;</span>
            <br>
        </p>
    </body>
</html>

你可能感兴趣的:(JavaScript,html,function,prototype,Class)