对象和面向对象
1 var dog = { 2 // 属性 3 name: "旺财", 4 age: 10, 5 dogFriends: ["阿黄", "阿菜", "飞毛腿"], 6 7 // 方法 8 eat: function () { 9 console.log("吃"); 10 }, 11 12 run: function () { 13 console.log("跑"); 14 } 15 }; 16 console.log(typeof dog); 17 console.log(dog); 18 19 dog.name = "张三"; 20 console.log(dog.name); 21 22 dog.eat();
1 总结: 2 1)对象:属性和方法 3 2)函数和对象有什么区别? 4 - 函数,可以封装一段代码 5 - 对象,封装一组属性和方法
js对象的分类 1、内建对象:string number boolean function object math 2、宿主对象 :bom dom 3、自定义对 1 创建对象的几种方法
2 1、对象字面量 3 var xl = { 4 name = '小撩', 5 age = 22, 6 sex = '女', 7 doIt = function () { 8 console.log('我是IT界的女扛把子!'), 9 } 10 } 11 写死了 12 13 2. new Object()创建对象 14 15 var xl = new Object(); 16 xl.name = '小撩'; 17 xl.age = 22; 18 xl.sex = '女'; 19 xl.doIt = function () { 20 console.log('我是IT界的女扛把子!'); 21 } 22 不能量产 23 24 3.工厂函数创建对象 25 26 function createPerson(name, age, sex) { 27 var person = new Object(); 28 person.name = name; 29 person.age = age; 30 person.sex = sex; 31 person.doIt= function(){ 32 console.log('我是IT界的女扛把子!'); 33 }; 34 return person; 35 } 36 var xl = createPerson('小撩', 22, '女'); 37 console.log(xl); 38 39 4. 自定义构造函数 40 41 function Person(name, age, sex){ 42 this.name = name; 43 this.age = age; 44 this.sex= sex; 45 this.doIt= function(){ 46 console.log('我是IT界的女扛把子!'); 47 } 48 } 49 var xl = new Person('小撩', 22, '女'); 50 //终极的一种方式 继承于object中的function构造函数
//构造函数本身就是一个函数,必须要与new成对出现
//new的执行过程
1)new先在内存中创建一个新的空对象
2)new 会让this指向这个新的对象
3)执行构造函数,给这个新对象加属性和方法
4)返回这个新对象
1 this出现在以下位置,分别代表: 2 1) 函数中, this指向Window 3 2) 方法中, this指向的是这个方法所属的对象 4 3) 构造函数中, this 就是构造函数创建的对象 5 6 1) 函数中 7 8 function fn() { 9 console.log(this); // Window 10 } 11 fn(); 12 13 14 2) 对象 15 16 var obj = { 17 name: '小撩', 18 fn: function () { 19 console.log(this); 20 console.log(this.name); 21 } 22 }; 23 obj.fn(); 24 25 26 3) 构造函数 27 28 function Fn() { 29 this.name = '小撩'; 30 this.age = 200; 31 console.log(this); 32 } 33 34 var object = new Fn(); // 调用构造函数 this指向被创建的对象 35 Fn(); // 函数调用,this必然指向window