1. 程式人生 > 其它 >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>