其他分享
首页 > 其他分享> > Js第三天

Js第三天

作者:互联网

方法 即函数成为了对象的属性

可以利用for(var a in obj){     console.log(n);//打印属性名 consolo.log(obj["n"]);//打印属性值 }来判断对象中的属性和方法
作用域 全局作用域 直接卸载script标签内的代码,都在全局作用域,在页面打开时运行,在页面关闭时销毁。   在全局作用域中,有一个全局对象window,代表浏览 的函数都会作为window的方法保存 函数作用域 调用函数时,创建函数作用域。函数调用结束,销毁函数作用域。并且函数作用域是相互独立的。 如果想在函数中使用全局变量,可以使用window. 在单独的函数作用域中也会出现函数的声明提前现象

变量声明提前 不论变量声明位置,变量的声明一定会在最初的位置(关键子) 函数的声明提前 以函数声明创建的函数,会在最开始被创建(即可以把函数的具体内容写在最下面) function fun(){
} 但使用函数表达式创建的不可提前执行

debug 在浏览器的控制台中,也可以 设置断点进行debug
this 解析器在调用函数每次都会向函数内部传递一个隐含的参数,隐含的参数即this,this指向一个对象 根据函数调用方式不同,this指向不同的对象 以函数形式调用this指向window 以方法形式调用this指向obj

通过工厂创造对象 注意,函数要有参数 构造函数是object的 function creatPerson(name){     var obj=new Object();     var.name=name;     return obj; } var obj2=creatPerson("bsb");


构造函数 与creatPerson类似,但是并不是Object类 instanceof  可以检查一个对象是否是某一个类的实例 修改构造函数: 构造函数每被调用一次,就是把内部的方法创造一遍,可以改造构造函数,减少消耗 function fun(){
} function Person(){     this.sayName=fun; }     练习代码: <!DOCTYPE html> <html lang="en">   <head>     <meta charset="UTF-8" />     <meta http-equiv="X-UA-Compatible" content="IE=edge" />     <meta name="viewport" content="width=device-width, initial-scale=1.0" />     <title>Document</title>     <script>       var obj = {         name: "嘿嘿",         age: 18,         gender: "男",         sayName: function () {           alert(this.name);         },       };       function createPerson(name, age, gender) {         var obj = new Object();         obj.name = name;         obj.age = age;         obj.gender = gender;         return obj;       }       var obj1 = createPerson("heihei", 18, "男");       console.log(obj1);
      function Person() {         alert("人类对象");       }       var obj2 = new Person();       console.log(obj2);     </script>   </head>   <body></body> </html>  

标签:function,obj,函数,作用域,第三天,Js,var,name
来源: https://www.cnblogs.com/jiubai/p/15968256.html