JS基础学习总结|JS 对象

第8章 对象(Object)

编程思想 : 想把一些生活中做事的经验融入到程序中
面向过程 : 凡是都要亲力亲为,每件事的具体过程都要知道,注重的是过程
面向对象 : 根据需求找对象,所有的事都用对象来做,注重的是结果
面向对象特性 : 继承 , 封装 , 多态(抽象性)
js不是面向对象的语言 , 但是可以模拟面向对象的思想
js是一门基于对象的语言
8.1 什么是对象
一切事物都是对象 ------ 看得见 , 摸得着 , 具体特指的某个东西
现实生活中:万物皆对象,对象是一个具体的事物,一个具体的事物就会有行为和特征。 举例: 一部车,一个手机 车是一类事物,门口停的那辆车才是对象 特征:红色、四个轮子 行为:驾驶、刹车

8.2 JavaScript中的对象
JavaScript中的对象其实就是生活中对象的一个抽象 JavaScript的对象是无序属性的集合。 其属性可以包含基本值、对象、数组或函数。 对象就是一组没有顺序的值。 我们可以把JavaScript中的对象想象成键值对,其中值可以是数据和函数。 对象的行为和特征 特征---属性 行为---方法事物的特征在对象中用属性来表示。 事物的行为在对象中用方法来表示。

8.3 如何得到一个对象
  • 字面量方式创建对象 ------------ 一次性对象
    var obj1 = {}; //得到一个空对象 var obj2 = {name:'程序员',age:18}; //得到拥有两个属性的对象 //得到拥有两个属性和一个方法的对象 var obj3 = { name:'程序员', age:18, fei:function(){ console.log('哈哈哈!'); } }

  • new Object() 创建对象 (内置构造函数)
    var person = new Object(); person.name = '李四'; person.age = 35; person.sayHi = function(){ console.log('Hello,everyBody'); }

  • 自定义构造函数创建对象
    在执行 var p1 = new Person() 时做了四件事情:
    1. 在内存中开辟空间 , 存储创建的新的对象
    2. 把this设置为当前的对象
    3. 设置对象的属性和方法的值
    4. 把this这个对象返回
    function Person(name, age, job) { this.name = name; this.age = age; this.job = job; this.sayHi = function () { console.log('Hello,everyBody'); } } var p1 = new Person('张三', 22, 'actor');

8.4 this 的指向
JavaScript中的this指向问题,比较复杂,有时候会让人难以捉摸,随着学习的深入,我们会不断接触this,
在学习过程中,我们可以不断总结,最终搞清楚this在何种情况下指向何处……
目前,我们只需要记住以下两点就可以了:
1: 函数如果在某个对象下,this就指向这个对象
2:函数如果被直接调用,this指向window对象
var o1 = { name: '程序员', f: function () { console.log(this.name); } } o1.f(); // 程序员


function f(){ console.log(this); } f(); console.log(window);

8.5 对象的使用
  • 方法及属性的使用
对象.方法名(); //调用对象的方法 对象.属性;//获取对象的属性

  • 遍历对象的属性
通过for..in语法可以遍历一个对象
var obj1 = { name:'小张', age : 17, sex : '男', } ? for(var k in obj1){ console.log(k); console.log(obj1[k]); }

注意:使用for …in语法,同样可以遍历数组
  • 删除对象的属性
var obj1 = { name:'小张', age : 17, sex : '男', } ? console.log(obj1.age); //17 delete obj1.age; //删除对象中指定的属性 console.log(obj1.age); // undefined

【JS基础学习总结|JS 对象】

    推荐阅读