今日背诵小纸条
对象是一组属性+方法的组合,其中可包含基本值、对象和函数
对象的定义
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指向构造函数创建的对象
作用域说明
作用域指变量可生效的范围
全局变量:在整体代码中都可生效;
局部变量:只在部分代码片段内可生效,最常见的如函数内部
预解析说明
将变量和函数的声明提升到当前作用域的最上边(不包括赋值和调用)
当变量和函数名称相同时,优先函数