今日背誦小紙條
對象是一組屬性+方法的組合,其中可包含基本值、對象和函數
對象的定義
1 對象字面量
var hero{
name: ‘產品小姐姐’,
age: 16,
weapon: [ ‘頭盔’, ‘靴子’, ‘盔甲' ],
sayHi: function ( ) {
console.log( this.name + ’很高興認識你~’ );
}
};
2 new Object法
var hero = new Object( );
// 其中new是指一種調用構造函數的方法,Object是構造函數名
hero.name = ‘產品小姐姐’;
hero.age = 16;
hero.weapon = [‘頭盔’, ‘靴子’, ‘盔甲’];
hero.sayHi = function ( ) {
console.log( this.name + ‘很高興認識你’ );
}
3 工廠方法
function creatHero( name, age, weapon ){
var hero = new Object( );
hero.name = name;
hero.age = age;
hero.weapon = weapon;
hero.sayHi = function ( ) {
console.log( this.name + ‘很高興認識你’ );
}
return hero;
}
var hero1 = creatHero( ‘產品小姐姐’, 16 , [ ‘頭盔’, ‘靴子’, ‘盔甲 ’] );
4 自定義構造(對象)函數法
function Hero( name, age, weapon ){
this.name = name;
this.age = age;
this weapon = weapon;
this.sayHi = function ( ) {
console.log( this.name + ‘很高興認識你’ );
}
}
var hero1 = new Hero( ‘產品小姐姐’, 16 , [ ‘頭盔’, ‘靴子’, ‘盔甲 ’] );
對象的調用
· 屬性的調用 hero.name; hero[ ‘hero’ ];
· 屬性的方法 per-son.sayHi( );
· 構造函數的調用 var hero1 = new Object( ‘產品小姐姐’, 16 , [ ‘頭盔’, ‘靴子’, ‘盔甲 ’] );
遍歷對象的方法
for in 可以遍歷對象的屬性
var object = { };
for (var i = 0; i < 10; i++) {
object[‘a’ + i] = i * 2;
}
for (var key in object) {
console.log(key + ‘—‘ + object[key]);
}
刪除對象
delete hero.name;
//其中hero.name為對象的屬性
說明
為區分函數名,構造函數使用帕斯卡命名,首字母大寫,後續每個單詞首字母都大寫
this代表含義:1) 當在函數中,this指向Window; 2) 當在方法中,this指向的是所屬對象;3) 當在構造函數中,this指向構造函數創建的對象
作用域說明
作用域指變量可生效的範圍
全局變量:在整體代碼中都可生效;
局部變量:只在部分代碼片段內可生效,最常見的如函數內部
預解析說明
將變量和函數的聲明提升到當前作用域的最上邊(不包括賦值和調用)
當變量和函數名稱相同時,優先函數
閱讀更多 PM阿嘉 的文章