javascript中的 预编译

2021-07-06  本文已影响0人  我没叫阿

JavaScript运行三部曲

经验1:如果函数体里面有重名的变量和函数,第一个打印的是重名的,那么一定打印的是函数

    function bar() {
            return foo;
            foo =10;
            function foo() {}
            var foo =11;
    }
    console.log(bar());

经验2:如果函数体里面有重名的变量和函数,最后一个打印的是重名的,那么打印的前一行是什么打印出来就是什么

    console.log(bar());
    function bar() {
            foo =10;
            function foo() {}
            var foo =11;
            return foo;
}
Person.prototype.LastName = 'wang';   //prototype 是函数的一个属性,并且是函数的原型对象
function Person(){

}
var person = new Person();
  1. this总是指向函数的直接调用者;
  2. 如果有new关键字,this指向new出来的那个对象;
  3. 在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent中的this总是指向全局对象Window;

call() 方法与apply() 方法的作用相同,它们的区别仅在于接收参数的方式不同。apply()接收一个运行函数的作用域,另一个是数组array,也可以是arguments对象。call() 方法时,传递给函数的参数必须逐个列举出来。
更简单地说,apply和call功能一样,只是传入的参数列表形式不同:如 func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])

    function loadScript(url,callback) {
            var script = document.createElement('script');
            script.type ='text/javascript';
            if(script.readyState){
                    script.onreadystatechange =function () {        //IE
                    if(script.readyState =="complete" || script.readyState =="loaded"){
                            eval(callback);
                    }
            }
            }else {
                    script.onload =function () {            //safari chrome firefox opera
                            eval(callback);
                    }
            }
            script.src = url;
            document.head.appendChild(script);
    }

  loadScript('文件路径','函数调用')
上一篇 下一篇

猜你喜欢

热点阅读