js 进阶知识

  • Post author:
  • Post category:其他



1)打开一个窗口就会有一个window对象(如页面上的iframe),window中包含document,document主要是来操作dom元素的(页面上的标签元素)


2)我们在页面上声明一个全局变量其实是声明在window对象上的,eg:

<span style="font-size:14px;">  var abc = 'jy';
    alert(window.abc);
    alert(abc);
    //由此可见全局变量abc是注册在window对象上的,即所有的变量都是注册在window对象上的。页面上的控件
    //或者元素是注册在window内部的document对象上的,换句话说window是一个页面的最高级。
    alert(document.body.innerHTML);
    alert(window.document.body.innerHTML);
    //由上面可以知道window是在最上层的,它的下面是document,window是指当前整个窗体,而document是指当前页面中的元素。</span>



3)js中的类其实都是方法,举个例子来说明一下,eg:

 var A = function () {
        this.name = "wenbin";//这里的this关键字不能省略,否则调用不到。
        this.jy = function () {
            alert('heihei');
        }
    }


我们可以直接输出类A的属性name,使用语句var a=new A();alert(a.name);


下面是一个复杂的例子,eg:

   var A = function () {
        this.name = "wenbin";
        this.jy = function () {
            alert('heihei');
        }
    }
    //可以用这种方式来声明类,其实类也就是方法。js中就是这样表现类的。
    //这里的b依赖于a
    var B = function (aObject) {
        this.aObject = aObject;
        alert(aObject.name);
        this.heihei = aObject.jy;
        this.attr = { name: 'wenbin', age: 26 };
    }
    var a = new A();
    alert(a.name);
    //下面的是把a注入到b。
    var b = new B(a);
    //上面相当于调用默认构造函数,直接调用了alert(aObject.name)
    alert(b.attr.age);
    b.heihei();</span>




4)js中的alert指令会终止一切进程,只有等到alert执行过后(用户点掉对话框后)才回去执行其他的。这个时候就会出现问题,如angular的表达式,其他语言的对话框也是一样,所以我们要是添加了alert之后代码就好用的话,那么就有可能是程序的线程问题,即东西没执行完,但是不知道在哪块又进行了调用,或者是线程问题。



版权声明:本文为qq_25853275原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。