对象的概念——javascript面向对象高级

什么是对象?

a.对现实事物的抽象     —面向对象是对现实事物的抽象

b.对数据的封装    —是对具体数据的封装,是一堆属性和方法的集合

对象的三大特征(封装、继承、多态)

1.封装性,是对属性和方法的封装

2.继承是将别人没有的,拿过来成为自己的就是继承,js里不具备特定的继承的机制,但是可以通过技术上实

3.多态,不同情况的不同表现形式。如某个方法,传一个参数和传多个参数,得到的结果不一样

## 创建对象的四种方式 ##

**  1.声明范式**

// var obj = {}

**2.工厂函数1**

//    function stu(name,age){

//       return {

//         name: name,

//         age : age,

//         sayHello : function(){

//           console.log(‘我是‘+this.name+‘今年‘+this.age+‘岁‘)

//         }

//       }

//    }

//  var stu1 =  stu(‘zhangsan‘,21)

// stu1.sayHello()

//

**3.工厂函数2**

//    function stu(name,age){

//      var obj = {};

//      obj.name = name;

//      obj.age = age,

//      obj.sayHello = function(){

//        console.log(‘我是‘+this.name+‘今年‘+this.age+‘岁‘)

//      }

//      return obj

//    }

// var stu1 = stu(‘lis‘,22);

// stu1.sayHello()

//

//

**4. 工厂函数3——构造函数,重点**

// function Student(name,age){

//   this.name = name;

//   this.age = age;

//   this.sayHello = function(){

//      console.log(‘我是‘+this.name+‘今年‘+this.age+‘岁‘)

//   }

// }

// var stu1 = new Student(‘wang5‘,1);

// stu1.sayHello()

时间: 2024-10-10 18:04:18

对象的概念——javascript面向对象高级的相关文章

继承性—javascript面向对象高级

## 继承性 ## js不是一门完全是面向对象的语言,它没有专门实现对象继承的机制,但是可以通过语法层面实现对象的继承,要实现继承可以通过以下几种方式实现继承. (这里也可以通过ES6中的class语法实现继承,更接近传统语言如java,请见我ES6新特性) 2.通过constructor实现传值. 3.类Class的概念:构造函数 通过构造函数产生的对象叫做实例.具备构造函数的所有属性 将公用的方法和属性,提取出来存到原型上 继承的几种方式 1.通过原型实现继承 function Father

闭包 —JavaScript面向对象高级

# 闭包 # 我的理解:面试时,先说作用域链,再说闭包产生的原因,然后是垃圾回收GC,最后说闭包. a.一个函数内部声明的变量,就是它的私有变量. b.在javascript中特性中,函数是可以访问它所在作用域链的所有变量. c.但函数外部是不能直接访问函数内部的私有变量 D.通过函数内部再嵌套函数,子函数返回父函数的变量,就创建了一个闭包. 闭包的表现形式 模块化的本质:是通过函数的局部作用域特性来产生局部上下文来保存局部变量 1.函数作为返回值 function fn(){ var coun

原型和原型链 —javascript面向对象高级

原型 1.原型有什么用:js是用原型来实现继承 2.原型是:每一个对象都有其原型对象__proto__,这个原型对象指向构造它的构造函数的原型属性prototype. ## 一.函数和对象的关系 ## 1.函数是对象的一种,instanceof 可以判断 2.对象是函数创建的 ## 二.prototype 与 __proto__ ## 1.prototype是函数的一个属性,每一个函数都有protptype属性,这个值是一个对象,里面有一个constructor属性,指向它自己. 2.__pro

this —JavaScript面向对象高级

# this的用法 # 重点: 谁调用就指向谁 //ES6新特性中,定义箭头函数  var fn = () =>{...} 这里面如果有this,是固化的,跟bind情形基本相似 1,取值:在函数真正被调用的时候确定,因为每次调用会有一个不同的上下文 var per1 = new Person('zhangsan',18) per1.sayHello() var per2 = new Person('lis',20) per2.sayHello() per1一调用就指向per1,per2一调用就

作用域和作用域链 —javascript面向对象高级

# 作用域和作用域链 # ## 1.作用域 ## 定义:函数声明时,会确定当前函数的作用域,所谓作用域就是作用的范围(地盘) 全局作用域: a. window是顶层对象,是一切函数,变量,对象的终点, b. 所以在全局范围内定义的函数或变量,它都是属于window对象的属性或方法. c. 其作用域范围是全局,任何地方均能调用. 局部作用域: a. 函数声明时,函数内部的作用域就是局部作用域, b. 在函数内部通过var 声明的变量 和 声明式的函数均是该函数的私有变量或函数, c. 一般情况下,

执行上下文环境—JavaScript面向对象高级

#  执行上下文环境 # **定义**:执行函数的时候,会产生一个上下文的对象,里面保存变量,函数声明和this. **作用**:用来保存本次运行时所需要的数据 在产生执行上下文(执行上下文环境)时,浏览器会做以下三个准备工作: 1.提取var 声明的变量,并赋值为 undefined 2.提取声明式函数. 3.给this赋值,指向window或当前对象. 函数每执行一次都会产生一个执行上下文, 因为函数参数不同会有不同的计算结果, ## 全局上下文环境 ## 全局级别的代码,如多个script

javascript面向对象创建高级 Web 应用程序

 目录 JavaScript 对象是词典 JavaScript 函数是最棒的 构造函数而不是类 原型 静态属性和方法 闭包 模拟私有属性 从类继承 模拟命名空间 应当这样编写 JavaScript 代码吗? 展望 最近,我面试了一个有五年 Web 应用程序开发经验的软件开发人员.四年半来她一直在从事 JavaScript 相关的工作,她自认为 JavaScript 技能非常好,但在不久之后我就发现实际上她对 JavaScript 知之甚少.话虽这样说,但我确实没有责备她的意思.JavaScrip

javascript面向对象系列第一篇——构造函数和原型对象

× 目录 [1]构造函数 [2]原型对象 [3]总结 前面的话 一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如何用构造函数和原型对象来创建对象 构造函数 构造函数是用new创建对象时调用的函数,与普通唯一的区别是构造函数名应该首字母大写 function Person(){ this.age = 30; } var person1 = new Person(); console.log(person1.ag

我要谈对象之——JavaScript面向对象(1)

任何语言里都有面向对象,除了个别的.今天,我要说的是javascript中面向对象. 什么是面向对象? 计算机中的一切算法和逻辑都是源于生活中的,对象,这个抽象的概念并不是男同胞理解的妹子哈,对象,无处不在.比如-- 你的电脑键盘就是一个对象.我们可以用它敲文字,那么这就是他的方法.而方法永元是运动的.那么它有很多按键.这些按键每个都对应着一个不同的固定的内容,比如按键a,你不可能按了他屏幕上出个字母b,中毒除外哈.那么这些按键我们就叫他属性.属性永运都是静态的. 总结一下哈:对象定义:分为两种