JavaScript学习(七)

目录

javascript对象与数组

javascript内部对象

object对象

1.创建object对象

2.object对象的属性

3.object对象的方法

String对象

1.创建String对象

2.String对象的属性

3.String对象的方法

event对象

1.在IE中引用event对象

2.在W3C中引用event对象

3.event对象的属性


javascript对象与数组

javascript内部对象

object对象

1.创建object对象

语法:obj =new Object([value])

obj:必选项。要赋值为Object对象的变量名。

value:可选项。任意一种JScript基本数据类型(Number、Boolean或String)。如果value为一个对象,返回不做改动的该对象。如果value为null、undefined,或者没有给出,则产生没有对象的内容。

2.object对象的属性

(1)prototype属性

prototype属性返回对象类型原型的引用。     语法:objectName.prototype

用prototype属性可以提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象原型的操作。

function max(){
                var i,max=this[0];
                for(i=1;i<this.length;i++)
                {
                    if(max<this[i])
                    max=this[i];
                }
                return max;
            }
            Array.prototype.max=max;
            var x=new Array(1,2,3,4,5,6);
            var y=x.max();
            document.write(y);

(2)constructor属性

constructor属性表示创建对象的函数。      语法:object.constructor

constructor属性是所有具有prototype的对象的成员,包括除Global和Math对象以外的所有JScript固有对象。constructor属性保存了对构造特定对象的实例的函数的引用。例如:

x=new String("Hi");

if(x.constructor==String)    //进行处理(条件为真)

3.object对象的方法

(1)toLocaleString()方法

toLocaleString()方法返回一个日期,该日期使用当前区域设置并已被转换为字符串。  

语法:dateObj.toLocaleString()

dateObj:必选项。为任意的Date对象。

toLocaleString()方法返回一个string对象,该对象中包含了用当前区域设置的默认格式表示的日期。

(2)toString()方法

toString()方法返回对象的字符串表示

语法:objectname.toString([radix])

objectname:必选项。要得到的字符串表示的对象。

radix:可选项。指定将数字值转换为字符串时的进制。

JavaScript学习(七)

(3)valueOf()方法

valueOf()方法返回指定对象的原始值。

object.valueOf()

JavaScript学习(七)

String对象

1.创建String对象

string对象是动态对象,用于操纵和处理文本串,可以通过该对象在程序中获取字符串长度、提取子字符串,以及将字符串转换为大写或小写字符。

语法:var newstr=new String(StringText)

newstr:创建的String对象名

StringText:可选项。字符串文本。

2.String对象的属性

在string对象中有三个属性,分别是length、constructor和prototype。

(1)length属性:用于获取当前字符串的长度。

语法:stringObject.length

(2)constructor属性:用于对当前对象的函数的引用。

语法:object.constructor

(3)prototype属性:可以为对象添加属性和方法。

语法:object.prototype.name=value

object:对象名或字符变量名。

name:要添加的属性名。

value:添加的属性值。

3.String对象的方法

JavaScript学习(七)

event对象

javascript的event对象用来描述javascript的事件,主要作用于IE和NN4以后的各个浏览器版本中。event对象代表事件状态,如事件发生的元素、键盘状态、鼠标位置和鼠标按钮状态。一旦事件发生,便会生成event对象,如单击一个按钮,浏览器内存中就产生相应的event对象。

1.在IE中引用event对象

在IE中,event对象被作为Windows对象属性访问:window.event

由于window引用部分是可选的,因此脚本像全局引用一样对待event对象:event.propertyName

2.在W3C中引用event对象

在W3C事件模型中,event对象引用比较复杂。在多数情况下,必须地将event对象作为1个参数传通到事件处理函数中。event 对象有时可自动作为参数传递,这依赖于事件处理函数如何与对象绑定。
如果使用原始的方法将事件处理函数与对象绑定(通过元素标记的一个属性),则必须把event对象作为参数传递。

例如:onKeyUp="example(event)"

 

这是在W3C模型中唯一像全局引用一样明确引用event 对象的方式,这个引用 只作为事件处理函数的参数,在别的内容中不起作用。如果有多个参数,则event对象引用可以以任意顺序排列,例如:
onKeyUp= "example(this,event)"
与元素绑定的函数定义应该有一个参数变量来“捕获”event 对象参数:
function example(widget,evt)..}

注意:这个参数变量名称没有任何限制,在本书的例子中使用event对象或evt。在跨浏览器的的脚本中使用时,应避免用event作为参数变量名,以避免与IE的event属性冲突。

3.event对象的属性

(1)altLeft属性

altLeft属性设置获取左alt键的状态。检索左alt键的当前状态,返回值true表示关闭,false表示不关闭。

语法:[window.]event.altLeft

由于altLeft属性是Boolean值,因此可以将属性应用到if语句当中,根据获取的值不同而执行不同的操作。

(2)ctrlLeft属性

ctrlLeft属性设置获取左Ctrl键的状态。检索左Ctrl键的当前状态,返回值true表示关闭,false表示不关闭。

语法:[window.]event.ctrlLeft

由于ctrlLeft属性是Boolean值,因此可以将属性应用到if语句当中,根据获取的值不同而执行不同的操作。

(3)shiftLeft属性

shiftLeft属性设置获取左shift键的状态。检索左shift键的当前状态,返回值true表示关闭,false表示不关闭。

语法:[window.]event.shiftLeft

由于shiftLeft属性是Boolean值,因此可以将属性应用到if语句当中,根据获取的值不同而执行不同的操作。

function appendText(str) {
                document.body.innerHTML += ("");
        }
        
        document.onkeydown=function(){
            
            //使用if语句判断Ctrl键、alt键和shift键是否被按下
            if(event.ctrlKey||event.altKey||event.shiftKey){
                //如果按下任意一键,执行下面内容
                alert("这是新的世界!");
                 appendText("ctrlKey");
            }
            
    }
        

(4)button属性

button属性设置获取事件发生时用户所按的鼠标键。

语法:[window.]event.button

值0---按下左键      值1------按下中键    值2--------按下右键

function gos(){
            if(event.button==1){
                alert("世界欢迎您!");
                return false;
            }
        }
document.onmousedown=gos;

(5)clientX属性

clientX属性获取鼠标在浏览器窗口中的X坐标,是一个只读属性,即只能获取鼠标的当前位置,不能改变鼠标的位置。

语法:[window.]event.clientX

(6)clientY属性

clientY属性获取鼠标在浏览器中的Y坐标,是一个只读属性,即只能获取鼠标的当前位置,不能改变鼠标的位置。

语法:[window.]event.clientY

例子:设计一个文字跟随鼠标移动的实例,当鼠标指针移动到文字上方时,拖动鼠标即可使工作区中的文字跟随鼠标移动。

<head>
        <meta charset="utf-8" />
        <title>JavaScript学习一</title>
        <style type="text/css">
            .move_out{
                position: relative;
                cursor: hand;
                font-family: "微软雅黑";
            }
        </style>
        <!--js代码需要编写到script的标签中-->
        <script type="text/javascript">
           var move_out=false;  //定义变量,值为false
           var z,x,y;          //定义变量
           function move(){     //创建函数
                   if(event.button==move_out){  //判断当前鼠标是否在左键按下状态
                       z.style.pixelLeft=temporarily1+event.clientX-x;//获取当前鼠标位置
                       z.style.pixelTop=temporarily2+event.clientY-y; //获取当前鼠标位置
                       return false;
                   }
           }
           
           function down(){    //创建自定义函数,实现文字的移动
                   if(event.srcElement.className=="move_out"){ //创建srcElement属性获取当前事件的对象
                       move_out=true;
                       z=event.srcElement;
                       temporarily1=z.style.pixelLeft;
                       temporarily2=z.style.pixelTop;
                       x=event.clientX;         //获取鼠标在窗口X位置
                       y=event.clientY;         //获取鼠标在窗口Y位置
                       document.onmousemove=move;//当鼠标移动时执行move()函数
                   }else{
                       move_out=false;
                   }
           }
           document.onmousedown=down;
        </script>
    </head>
    <body>
        <font color="blue" size="4" class="move_out">卡饭首付款你发</font>
    </body>

JavaScript学习(七)JavaScript学习(七)

(7)X属性

X属性设置获取鼠标指针位置相对于CSS属性中有position属性的上级元素的X轴坐标。如果CSS属性中没有position属性的上级元素,默认以body元素为参考对象。

语法:[window.]event.X

(8)Y属性

Y属性设置获取鼠标指针位置相对于CSS属性中有position属性的上级元素的Y轴坐标。如果CSS属性中没有position属性的上级元素,默认以body元素为参考对象。

语法:[window.]event.Y

<head>
        <meta charset="utf-8" />
        <title>JavaScript学习一</title>
        <style type="text/css">
            .yellow{
                visibility: visible;
                background-color: bisque;
                position: absolute;
                top: 60px;
                left: 200px;
                width: 300px;
                height: 200px;
                filter: revealTrans(transition=12,duration=0.1) blendTrans(duration=0.1);
                
            }
            
            #title{
                background-color: greenyellow;
                padding: 2px;
                font-size: 13px;
                cursor: move;
            }
            
        </style>
        <script type="text/javascript">
            var Obj="none";
            var pX;
            var pY;
            document.onmousemove=div_move;
            document.onmouseup=div_up;
            /*编写用于实现动态移动层的javascript代码。创建自定义函数div_down(),
             * 获取当前鼠标与层左边界和上边界的距离*/
            function div_down(tag){
                Obj=tag;
                pX=parseInt(document.all(Obj).style.left)-event.x;
                pY=parseInt(document.all(Obj).style.left)-event.y;
            }
            /*创建自定义函数div_move(),用于移动层的位置*/
            function div_move(){
                if(Obj!="none"){
                    document.all(Obj).style.left=pX+event.x;
                    document.all(Obj).style.top=pX+event.y;
                    event.returnValue=false;
                }
            }
            /*创建自定义函数div_up(),当松开鼠标时,释放对当前层的控制*/
            function div_up(){
                Obj="none";
            }
            /*创建自定义函数hide(),用于将层以动态效果隐藏*/
            function hide(divid){
                divid.filters.revealTrans.apply();
                divid.style.visibility="hidden";
                divid.filters.revealTrans.play();
            }
            /*在页面上移动鼠标时,通过页面的onmousemove事件调用自定义函数div_move()*/
            document.onmousemove=div_move();
            /*在页面上松开鼠标时,通过页面的onmouseup事件调用自定义函数div_up()*/
            document.onmouseup=div_up();
        </script>
    </head>
    <body>
        <!--在页面中添加两个层,并且其中一个层包含另一个层。在div1层的鼠标按下事件onmousedown
        触发时调用自定义函数div_down()-->
        <div id="div1" class="yellow">
            <div id="title" onmousedown=div_down("div1")>出师表</div>
        </div>
    </body>

(9)cancelBubble属性

cancelBubble属性检测是否接受上层元素的事件控制。如果该属性的值是false,则允许被上层元素的世界控制,如果是true,则不被上层元素的事件控制。

语法:[window.]event.cancelBubble[= cancelBubble]

该属性的值是一个可读写的布尔值,默认值为false。

(10)srcElement属性

srcElement属性设置获取触发事件的对象。srcElement属性是事件初始目标的HTML元素对象引用。由于事件通过元素容器层次进行处理,且可以在任意一个层次进行处理,因此由一个属性指向产生初始事件的元素是很有帮助的。

语法:[window.]event.srcElement

通过该属性可以读、写属于该元素的属性,并调用它的任何方法。

<script type="text/javascript">
            /*创建自定义函数select(),保存发生事件的文档元素信息*/
            var lastSelection=null;
            function select(element){
                var e,r,c;
                if(element==null){
                    e=event.srcElement; //获取body元素的初始记录
                }else{
                    e=element;
                }
                if(e.tagName=="TD"){
                    c=findcell(e);
                    if(c!=null){
                        if(lastSelection!=null){
                            deselectctroworcell(window.lastSelection);
                        }
                        selectroworcell(c);
                        lastSelection=c;
                    }
                }
                window.event.cancelBubble=true; //取消冒泡语句,用于防止向下一个外层对象冒泡
            }
            table1.onclick=select();
            /*创建自定义函数findcell(),用于判断选中位置是否为单元格*/
            function findcell(e){
                if(e.tagName=="TD"){
                    return e;
                }else if(e.tagName=="BODY"){
                    return null;
                }else{
                    return findcell(e.parentElement);
                }
            }
            /*创建自定义函数selectroworcell(),用于改变单元格的前景色和背景色*/
            function selectroworcell(r){
                r.runtimeStyle.backgroundColor="blue";
                r.runtimeStyle.color="white";
            }
            /*创建自定义函数deselectctroworcell(),用于将前景色和背景色恢复正常*/
            function deselectctroworcell(r){
                r.runtimeStyle.backgroundColor="";
                r.runtimeStyle.color="";
            }
        </script>

上一篇:JavaScript学习(五)


下一篇:如何通过直播间源码实现完整的直播系统开发?