对象
为什么要有对象
function printPerson(name, age, sex....) {}// 函数的参数如果特别多的话,可以使用对象简化function printPerson(person) {console.log(person.name);……}
什么是对象
现实生活中:万物皆对象,对象是一个具体的事物,一个具体的事物就会有行为和特征。
举例: 一部车,一个手机
车是一类事物,门口停的那辆车才是对象
特征:红色、四个轮子
行为:驾驶、刹车
JavaScript中的对象
JavaScript中的对象其实就是生活中对象的一个抽象。
JavaScript的对象是无序属性的集合。
其属性可以包含基本值、对象或函数。对象就是一组没有顺序的值。我们可以把JavaScript中的对象想象成键值对,其中值可以是数据和函数。
对象的行为和特征
特征—属性
行为—方法
创建对象的多种方式
//1 字面量var obj = {name : \"张三\",age:19,sex:\"女\",say: function(){console.log(\'我是\' + this.name + \",我今年\" + this.age + \"岁了,我是\" + this.sex + \"生,很高兴认识你\");}};console.log(typeof obj);obj.say();//对象.属性 或 对象[\'属性\']console.log(obj.name);console.log(obj[\'name\']);//2 new Object()var obj = new Object();obj.name = \'李四\';obj.age = 17;obj.say = function(){console.log(this.name + \':\' + this.age);}obj.say();console.log(obj[\"name\"]);console.log(obj.name);//3 工厂函数function factory(name,age){var obj = new Object();obj.name = name;obj.age = age;obj.say = function(){console.log(this.name + \':\' + this.age);}return obj;}var person1 = factory(\'王五\',20);var person2 = factory(\'小明\',30);person1.say();person2.say();//4 构造函数function Person(name,age){//成员变量this.name = name;this.age = age;//全局变量,保存到了window中addr = \'石家庄\';//局部变量var sex = \'男\';this.say = function(){console.log(\'我是\' + this.name + \",我今年\" + this.age + \"岁了,我是\" + sex + \"生,很高兴认识你\");}}var person1 = new Person(\'张三\',\'18\');console.log(person1);person1.say();console.log(person1.name);//访问不到,因为没有在对象中console.log(person1.sex);console.log(person1.addr);console.log(addr);var person2 = new Person(\'xxx\',123);