首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS面向对象

JS面向对象 理解对象 数据(数据描述符)属性 数据属性有4个描述内部属性的特性 [[Configurable]] 表示能否通过delete删除此属性,能否修改属性的特性,或能否修改把属性修改为访问器属性.... configurable 如果设置configurable属性为false,则不可使用delete操作符(在严格模式下抛出错误), 修改所有内部属性值会抛出错误,在《javaScript高级教程》...说只可以改变writable的值,现在改变writable的值也会抛出错误 在对象添加一个数据描述符属性 var person = {}; Object.defineProperty(person,...Object.getOwnPropertyDescriptor(obj, 'a') console.log(d); // { // value: 2, // writable: false, // } 在对象添加存取描述符属性...input2"> 我每次比input1的值加1=> js

7.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

JS面向对象

面向对象面向过程区别面向对象是把构成问题的事物拆解为各个对象,来描述这个事物在当前问题中的行为,而不是为了实现某个步骤 面向过程,是分析出实现问题的每个步骤,然后编写函数,并依次调用。...面向对象特点封装 让使用的人不考虑内部实现,只考虑功能使用,把内部代码保护起来,提供api接口让用户调用继承 从父类继承出一些方法和属性,利于代码复用多态 不同对象作用于同一操作产生不能效果JS三大对象宿主对象所有非本地对象都属于宿主对象所有...DOM和BOM对象都属于宿主对象嵌入到网页的JS来说,宿主对象就是浏览器提供的,比如:Window和Documnet等本地对象包括:Object、Array、Date、RegExp、Boolean、Number...、String这些引用类型在运行过程需要通过new来创建所需的实例对象内置对象是本地对象的子集在ECMAScript程序开始执行前就存在,本身就是实例化内置对象,开发者无需再实例化内置独享有Global...构造函数/创建实例 通过this添加的对象和属性都指向当前对象,所以在实例化的时候,通过this添加的方法和属性都会在内存复制一份。

8910

JS面向对象设计原则

本篇来讨论为什么程序开发推荐使用面向对象编程。 程序的执行有几种套路:顺序执行、判断执行和循环执行。我认为的程序其实就是一个个或好或差的单元组成的大单元,计算机对这个大单元进行执行计算的过程。...程序也一样,如果程序的各个小单元能够合理安排、条理清晰、逻辑性强,那么程序执行就会更顺畅更快。这个合理优化的过程,在程序的世界,就需要通过面向对象的方法来把一个个小单元进行合理结构化。...面向对象其实就是把数据进行结构化。程序的编写应遵循简单抽象的总原则。...在面向对象开发,想要做到简单抽象并不容易,拆分出来的更细粒度原则如下: 五大设计原则: S:单一职责原则 一个程序只做好一件事 如果功能过于复杂就拆分开,每个部分保持独立 O:开放封闭原则 对扩展开放...保持接口的单一独立,避免出现“胖接口” JS没有接口,使用较少 类似于单一接口,这里更关注接口 D:依赖倒置原则 面向接口编程,依赖于抽象而不依赖于具体 使用方只关注接口而不关注具体类的实现 JS中使用较少

1.1K20

JS面向对象编程

面向对象编程 在学习了js高级以及es6之后,再来学习面向对象编程,之前在学习es6,canvas的时候已经有接触到了这种思想,感觉还是需要在深入的学习一下,这部分内容牵扯到很多原型链部分的东西,当做复习一下还是很不错的...ES5面向对象 面向对象编程(OOP)具有灵活、代码可复用、高度模块化等特点。...对象是单个实物的抽象 对象是一个容器,封装了对应的属性和方法,属性是对象的状态,方法是对象的行为(完成的任务) 构造函数实例化对象 在ES5没有class类的概念,所以面向对象是基于构造函数和原型链的...---- 在ES6新增了class类的关键字,以及一些相关属性,优化了先前的面向对象代码可读性低的问题,新的class写法让对象原型的写法更加清晰,更加的像面向对象编程的语法,因此class也只是一个语法糖...,其所有内容都可以通过es5对象原型方式实现

4K20

js面向对象理解

ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。...js(如果没有作特殊说明,本文中的js仅包含ES5以内的内容)本身是没有class类型的,但是每个函数都有一个prototype属性。...也就是说,不必在构造函数定义对象信息,而是可以直接将这些信息添加到原型。...1)__proto__和prototype JS在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__的内置属性,用于指向创建它的函数对象的原型对象prototype。...四.继承 继承是面向对象中一个比较核心的概念。其他正统面向对象语言都会用两种方式实现继承:一个是接口实现,一个是继承。

8310

JS面向对象笔记

一、js零散笔记 0、匿名函数定以后直接调用:(function(numA, numB) { alert(numA + numB); })(3,4);//弹窗7 1、js函数就是对象对象就是函数。...arguments表示函数的参数集合 2、js中方法直接调用为函数,用new调用为对象。...JavaScript没有类的语法,是用函数闭包模拟出来的 3、js对象动态添加属性示例: //定义一个函数 function Person(){ } //1、直接调用函数名,就只是单纯的表示调用函数...Person(); //2、是用new,表示创建了一个对象js是动态语言,可以给对象动态添加属性和方法 var per = new Person(); per.name = "大锤"; //...给per对象动态添加方法sayHi //调用per对象的属性和方法 alert(per.name);//或者alert(per['name']); per.sayHi(); 4、js中支持this关键字

7.4K61

JS面向对象详解

面向对象面向过程 面向对象面向过程是两种不同的编程思想,刚开始接触编程的时候,我们大都是从面向过程起步的,毕竟像我一样,大家接触的第一门计算机语言大概率都是C语言,C语言就是一门典型的面向过程的计算机语言...面向过程主要是以动词为主,解决问题的方式是按照顺序一步一步调用不同的函数。面向对象是以名词为主,将问题抽象出具体的对象,而这个对象有自己的属性和方法,在解决问题的时候,是将不同的对象组合在一起使用。...冰箱.关门() 从这个例子可以看出,面向对象是以主谓为主,将主谓堪称一个一个的对象,然后对象有自己的属性和方法。面向对象是以功能来划分问题的,而不是步骤。...功能上的统一保证了面向对象设计的可扩展性,解决了代码重用性的问题。这也是在漫长的程序设计的发展过程得到的验证结果,面向对象的编程思想较之于面向过程较好一点。...在ES5,并没有class的概念,但是由于js的函数级作用域(函数内部的变量函数外访问不到)。所以我们可以模拟class。在es5,类其实就是保存了一个函数的变量,这个函数有自己的属性和方法。

2.3K31

JS高级——面向对象

面向对象程序开发思想,每一个对象都是功能中心,具有明确分工。 面向对象编程具有灵活、代码可复用、容易维护和开发的优点,更适合多人合作的大型软件项目。...面向对象的特性: 封装性 继承性 多态性 面向过程和面向对象的对比 面向过程 面向对象 优点:性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用的面向过程编程。...ES6的类和对象 面向对象 面向对象更贴近我们的实际生活,可以使用面向对象描述现实世界事物,但是事物为具体的事物和抽象的事物 面向对象的思维特点: 抽取(抽象)对象公用的属性和行为组织(封装)成一个类...面向对象编程我们考虑的是有那些对象,按照面向对象的思维特点,不断的创建对象,使用对象,指挥对象做事情。 对象 现实生活,万物皆对象对象是一个具体的事物,看得见摸得着的事物。...在JavaScript对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。

2.2K30

JS面向对象一:MVC的面向对象封装

JS面向对象一:MVC的面向对象封装 MDNjavascript面向对象 面向对象(Object-Oriented) ? 面向对象面向的意思是以...为主,面向对象编程既以对象为主的编程....类(从MVC提炼面向对象是什么) 使用的代码是 模块化、MVC里的V和C、闭包与立即执行函数的使用和MVC的M(model)、MVC总结 接下来优化老版本的message.js 箭头函数内外this相通...那么我们可以吧每个js文件的MVC写成一个模板,这个模板就是类 所谓模板,就是写个函数把他造出来,那么我们来封装MVC 封装 Model View Controller 首先建三个封装的文件,再引入...面向对象的核心就是实例化一个对象 其他:对象的方法 以下引用自MDNjavascript面向对象 如果一个Object的的属性是函数,那么这个属性叫方法 在JavaScript中方法通常是一个绑定到对象的普通函数...当从变量 helloFunction()调用的时候, this就被设置成了全局对象 (在浏览器即window)。

2.7K20

JS面向对象笔记 转

一、js零散笔记 0、匿名函数定以后直接调用:(function(numA, numB) { alert(numA + numB); })(3,4);//弹窗7 1、js函数就是对象对象就是函数。...arguments表示函数的参数集合 2、js中方法直接调用为函数,用new调用为对象。...JavaScript没有类的语法,是用函数闭包模拟出来的 3、js对象动态添加属性示例: //定义一个函数 function Person(){ } //1、直接调用函数名,就只是单纯的表示调用函数...Person(); //2、是用new,表示创建了一个对象js是动态语言,可以给对象动态添加属性和方法 var per = new Person(); per.name = "大锤"; //...给per对象动态添加方法sayHi //调用per对象的属性和方法 alert(per.name);//或者alert(per['name']); per.sayHi(); 4、js中支持this关键字

13.8K21

JS面向对象笔记二

window,属性也会变成全局属性, 则被构造函数赋值的变量不再是一个对象,而是一个未定义的变量,js不允许给undefined添加属性,所以调用undefined的属性会报错。...一般来说,在多层函数需要使用this时,设置一个变量来固定this的值,然后在内层函数这个变量。...2、对象具有属性__proto__,可称为隐式原型,一个对象的隐式原型指向构造该对象的构造函数的原型,   这也保证了实例能够访问在构造函数原型定义的属性和方法。   比如上图例子: f1....四、对象的Copy, 和面向对象三大特性模拟(继承,多态,封装) 1、拷贝对象,需要满足以下两个条件: 拷贝后的对象,与原对象具有同样的prototype原型对象。...面向对象之继承特性体现,让一个构造函数继承另外一个构造函数:   1)、在子类的构造函数,调用父类构造函数   2)、让子类的原型指向父类的原型,这样子类原型继承了父类原型   多态的模拟则是重写子构造函数的继承自父构造函数的方法

5.6K70

js面向对象思想精要

这是一些简单的数据,保存在栈空间; 1.2.鉴别原始类型 使用typeof方法, eg: console.log(10);//number; 特例:鉴别null时返回的是object; 2.引用类型(js...对象) 2.1创建 var person = {name:"zhangsan",age:26}; console.log(person.name)//zhangsan var child...= new Object(); child.name = "zhangsan"; console.log(child.name);//zhangsan 2.2对象的解除 对象在不使用时将其解除...(person) 使用该方法不能添加,不能删除和改变,也不能写入数据,相当于一个只读的封印对象,可以使用Object.isFrozen(person)检测是否被冻结, 第四章 构造函数和原型对象 一.构造函数...几乎所有的函数都具有一个prototype属性,跟踪其原型对象,该属性是一个指向该实例使用的原型对象的指针, 第五章 继承 第六章 对象模式

1.2K10

面向对象思想总结 新手如何理解JS面向对象开发?

一、面向过程的思想和面向对象的思想 面向对象面向过程的思想有着本质上的区别,作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应该分析这个问题里面有哪些类和对象...三、面向对象的设计思想 面向对象的基本思想是,从现实世界客观存在的事物出发来构造软件系统,并在系统的构造尽可能运用人类的自然思维方式。...类是用于描述同一类的对象的一个抽象的概念,类定义了这一类对象所具有的静态属性和动态属性 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。 新手如何理解JS面向对象开发?...今天有时间讲讲我对面向对象的理解跟看法,尽量用通俗的语言来表达,多多指教! 如今前端开发已经越来越火了,对于前端开发的要求也是越来越高了,在面试,经常有面试官会问:你对JS面向对象熟悉吗?...那么JS就给出了构造函数这个模式用来解决从原型对象去生成实例,使用了this变量,new运算符。 先不上例子,先说说为什么构造函数能解决这个问题。

1.8K20

前端基础-JS面向对象编程

第1章 JS面向对象编程 ? 学习目标 初步理解对象是什么及面向对象编程的概念 能够自己创建一个对象 1.1 面向对象介绍 什么是对象?...Everything is object (万物皆对象), JS语言中将一切都视为 对象 ?...对象的每个属性或方法都有一个名字,而每个名字都 映射到一个值。 1.2 面向对象编程 面向过程:以前写js代码,都是面向过程。...典型问题:将大象关进冰箱分几步 面向过程式: 开门(冰箱) 放进(冰箱,大象) 关门(冰箱) 面向对象式: 两个对象:大象、冰箱 冰箱.开门() 冰箱.放进(大象) 冰箱.关门() 在面向对象程序开发思想...继承性:将同一类对象,公共的属性方法,提取到一个单独公共对象,具体的子对象可以使用这个公共对象的成员 [多态性]:动物的叫声为例,同一类的对象,有相同的方法(动物会叫), 但是每个具体的对象,方法实现的效果不一样

1.6K10
领券