/**
*@author sinux
*@date 2013/9/5
*@Content javascript基础入门(四)
*
*/
二,对象基础
0.作用域
   a.常见的编程语言都离不开作用域的概念。作用域实际上就是指属性或变量的适用范围。一般来讲有公有,私有,及受保护的作用域之分。
   b.实际上,javascript中的所有属性和方法均为公有作用域,没有私有和保护作用域的,显然在js中大谈作用域,除了加深对编程语言的横向比较意识之外,我看不到有什么亮点。
   c.虽然js没有静态作用域,不够它可以给构造函数提供属性和方法。在js中,构造函数只是函数,函数也就是个对象,自然就可以有属性和方法了:
   function fucTest(){
   alert(“123”);
   }
   fucTest.subFuc=function(){
   alert(“456”);
   }
   fucTest();//123
   func.subFuc();//456
1.this关键字
   在对象的方法中,关键字this总是指向调用该方法的对象。如:
   function showName(){
       alert(this.name);
   }   
   var student0=new Object();
   var student1=new Object();
   student0.name=”sinux”;
   student1.name=”linux”;
   student0.showName=showName;
   student1.showName=showName;
   student0.showName();//sinux
   student1.showName();//linux
   this指针的作用不言而喻。
2.类及对象的定义
    快餐啦,没时间细究啦~
    不过,对象令人感兴趣的是他的概念以及用它解决问题的方式。
3.对象修改
    如何自定义对象内的方法和属性,这个比较高端,现在节省时间略过。
    继续学习可以参考《javascript高级程序设计》第126页左右。
4.继承机制
     概览,略过!具体学习参考《javascript高级程序设计》第130页左右   

三.浏览器中的JS  
0.HTML中的js
基础的,概览。
1.SVG中的js
这个pass吧~
2.BOM(浏览器对象模型)
   a.了解BOM的对象体系结构
       Window——document———anchors
                |                 |
                —frames         —forms
                |                 |
                —history        —images
                |                 |
                —location       —links
                |                 |
                —navigator      —location
                |
                —screen
        Object
        Array
        PS:从以上体系图可以看出window占据比较重要的部分,常用的主要对象都以某种联系关联到window
      b.window对象
      window对象指浏览器窗口,从以上的体系结构可以看出window是BOM的核心,所以除了可以调整浏览器窗口的大小及位置等基本功能外,还具有一定特权,在引用函数、对象或者集合时,我们没有必要显示明确指出是它。
      当然,如果一个窗口中嵌套有多个frame框架,在某一框架内编写的代码中的window默认调用的是所在框架。
      <!DOCTYPE html>
        <html>
        <head>
        <title>FrameSet And Window Test</title>
        </head>
        <frameset  rows=”100,*”>
        <frame src=”Top.htm” name=”top”/>
        <frameset cols=”50%,50%”>
        <frame src=”Left.htm” name=”Left”/>
        <frame src=”Right.htm” name=”Right”/>
        </frameset>
        </frameset> 
        </html>
     效果图如下:
      frame  

c.self
    作为window的引用,在某一个框架内代表该框架窗口对象。
    d.窗口操作    
    moveBy(dx,dy)把浏览器窗口相对当前位置水平移动dx个像素,垂直移动dy个像素。
    moveTo(x,y) 移动浏览器窗口,使它的左上角位于用户屏幕的(x,y)处,接受负数。
    resizeBy(dw,dh)把浏览器窗口相对于当前大小,宽度调整dw个像素,高度调整dy个像素。正值表示放大,负值表示缩小。
    resizeTo(w,h)把浏览器窗口的大小调整为宽为W个像素,高为h个像素。
    一些小问题:
    假设通过以上命令调整了浏览器的大小和位置,而没有进行记录,我们该怎么样判断窗口当前的位置和大小呢?
    Mozilla、Opera和Safari均提供了window.screenX和window.screenY属性判断窗口位置。并可以运用window.innerWidth和window.innerHeight属性来判断视口的大小,outerWidth和outerHeight属性判断浏览器窗口自身的大小。
    PS:不建议频繁对窗口进行大小和位置的变化,这将不利于用户的交互感受。
    Code    
    <script type=”text/javascript”>
    var vwin=window.open(“http://www.baidu.com”,”topFrame”,”height=150,width=300,top=10,left=10,resizable=yes”);
    vwin.moveTo(100,100);
    vwin.risizeTo(200,200);
    vwin.close();
    </script>
   d.系统对话框
    (1)alert()
    仅仅接受一个参数,作为文本输出。
    (2)confirm()
    同样接受一个参数,作为提示文本,不过具有OK|Cancel两个按钮,供用户进行选择。
    Code
    <script type=”text/javascript”>
    if(confirm(“Are U sure?”)
        alert(“OK”);
        else
        alert(“Cancel”);
    </script>
    (3)prompt()
    语法:prompt(“Please input your name”,“sinux”);
    返回值为提示框中文本域中的字符串。
    Code
    <script type=”text/javascript”>
    if(“sinux”==prompt(“Your name?”))
     alert(“OK,sinux.”);
    </script>
   e.状态栏
   没错,就是那个提示你鼠标所在位置的链接信息的状态栏,我们通过status和defaultstatus属性进行改变
  f.时间间隔和暂停
   (1)暂停 setTimeout()
    setTimeout(“alert(“1秒时间到”);”,1000);
    setTimeout(“function() {alert(1秒时间到。);}”,1000);
    function timeOutTest(){
    alert(1秒时间到);
    }
    setTimeout(timeOutTest,1000);
    //取消暂停
    var timeOutID=setTimeout(“alert(“1秒时间到”);”,1000);
    clearTimeout(timeOutID);
    如果不取消暂停,程序将在制定间隔后执行绑定的代码。
    (2)时间间隔 setInterval()
    语法与以上类似,同时也有clearInterval()与之对应,用法类似。
    如果不取消间隔,该间隔绑定的代码将在设定的间隔后重复执行。
    g.历史
    history属性
    go方法用于前进或后退指定数量的页数(历史中),对于历史中不存在的页数(无效页数),不响应。
    history.go(1);//前进一页
    history.go(-1);//后退一页
    history.back();//后退一页
    history.forward();//前进一页
    history.length//记录浏览器中历史网页的数量
   h.document属性
    document其实也是window对象的一个属性,其具有以下属性:
    alinkColor    激活链接的颜色
    bgColor       页面背景色
    fgColor       页面文本色
    lastModified  最后修改页面的日期,字符串
    linkColor     链接的颜色
    referrer      历史中后退一个位置的URL
    title         标签中显示的文本   可读可写,可以在框架不变的时候轻量级修改标题栏
    URL           当前载入页面的URL,可读可写,可以通过修改该值重导航至另一页面
    vlinkColor    访问过的链接的颜色
    PS:一般我们反对使用这些属性,因为他们引用了body中的就有属性,一般我们可以通过css来达成所需。
    此外,document中包含如form,link,anchor,image等页面元素的集合,不过我觉得这样来访问他们不是特别方便。
    document属性拥有以下几个方法:
    write()和writeln(),后者比前者要多输出一个换行,可以通过其向调用处写入文本或者引入js文件,具体用法和注意事项用到时自己百度~
    open(),close()方法,不赘述,直接代码:
    var oNew=window.open(“about:blank”,”newwindow”,”height=150,width=300,top=10,left=10,resizable=yes”);
    oNew.document.open();
    oNew.document.write(“<html><head><title>This is a test</title></head><body><h1>This is a Test.</h1></body></html>”);
    oNew.document.close();//写入完毕,关闭以显示结果
    当我们需要打开一个不需要向服务器返回的页面时比较实用。
   i.location
    location包含多种属性,一般多与URL的解析相关,在此不一一列举了,常用的有href属性
    location.href=”http://www.baidu.com/”;//当然该属性可读,表示该页面的URL
    与上述操作效果类似的可以采用方法的调用:
    location.assign(“http://www.baidu.com/”);
    location.replace(“http://www.baidu.com/”);//二者区别在于,后者删除了当前页面在历史中的记录
    重载当前页面
    location.reload();//当其参数为空或false时表示从缓存中重载,为true时在服务器重载。
   j.navigator对象
    利用该对象判断当前页面采用的什么浏览器窗口,具体的属性和方法以及使用技巧到时百度吧~
    k.screen
    用screen对象可以获取关于用户屏幕的基本信息。
    availHeight   窗口可以使用的屏幕高度(像素)
    availWidth    窗口可以使用的屏幕宽度(像素)
    height        屏幕高度(像素)
    width         屏幕宽度(像素)
    example:
    window.moveTo(0,0);
    window.resizeTo(screen.avaiWidth,screen.availHeight);
    //以上用于确定新窗口的大小,还是比较有用的。

版权声明:本文为sinux原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sinux/p/10389761.html