[Js]面向对象基础
一、什么是对象
对象是一个整体,对对外提供一些操作
二、什么是面向对象
使用对象时,只关注对象提供的功能,不关注其内部细节,比如Jquery
三、Js中面向对象的特点
1.抽象:抓住核心问题
2.封装:不考虑内部实现,只考虑功能使用
3.继承:①多重继承(多个父级)②多态(父类和子类具有相同的操作,但这些操作之间又不是那么一样)
四、this
是什么?当前的方法属于谁
唯一一种会失效的情况?调用函数前面有new
this啥时候会出问题: 1.定时器(被定时器调的函数,this是window) 2.事件
解决方法:再套一层,调用_this(通过闭包传递this)
五、prototype
原型prototype作用:给一类元素(系统的一些对象,如数组、字符串)添加方法,扩展系统函数的功能
六、在js里,类就是构造函数
七、引用
所谓引用,即指向同一块内存区域的地址
var arr1=[1,2,3];
var arr2=arr1;
arr2.push(4);
alert(arr1);
alert(arr2);
输出结果都是1,2,3,4
arr1和arr2就像两把钥匙,[1,2,3]就像个房间,用钥匙2打开房间加个4进去,再用钥匙1打开进去,空间还是1,2,3,4
如果想不一样怎么办
var arr1=[1,2,3];
var arr2=[];
for( var i in arr1){
arr2[i]=arr1[i];
}
....
八、系统对象
1.本地对象(非静态对象)
需要new出来才能用的
常用对象:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error
2.内置对象(静态对象)
Global(全局的,事实上只存在书本上,实际用不到)、Math
3.宿主对象(由浏览器提供的对象)
DOM、BOM
[Js]面向对象基础的更多相关文章
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
函数声明 JavaScript中声明函数的方式:(无需声明返回值类型) function add(i1, i2) { return i1 + i2;//如果不写return返回 ...
- JS面向对象基础
以往写代码仅仅是为了实现特定的功能,后期维护或别人重用的时候,困难很大. Javascript作为完全面向对象的语言,要写出最优的代码,需要理解对象是如何工作的. 1. 对象是javasc ...
- 第十四节 JS面向对象基础
什么是面向对象:在不需要知道它内部结构和原理的情况下,能够有效的使用它,比如,电视.洗衣机等也可以被定义为对象 什么是对象:在Java中对象就是“类的实体化”,在JavaScript中基本相同:对象是 ...
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
什么是面向对象?面向对象是一种思想. 面向对象可以把程序中的关键模块都视为对象, 而模块拥有属性及方法. 这样如果我们把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作. 工厂 ...
- js面向对象基础总结
js中如何定义一个类? 定义的function就是一个构造方法也就是说是定义了一个类:用这个方法可以new新对象出来. function Person(name, age){ this.name = ...
- JS面向对象基础2
根据之前看了面向对象相关的视频,按照自己的理解,整理出相关的笔记,以便自己的深入理解. javascript面向对象: 突发奇想,注意:===全等:是指既比较值,也比较类型(题外话,可忽略) 逻辑运算 ...
- JS面向对象基础1
根据之前看了面向对象相关的视频,按照自己的理解,整理出相关的笔记,以便自己的深入理解. 如果要判断两个数是否相等,将值乘以10或者100,转换成整数再进行比较 例如:a++与++a 短路运算符 ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十五 ║Vue基础:JS面向对象&字面量& this字
缘起 书接上文<从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 计划书 & 我的前后端开发简史>,昨天咱们说到了以我的经历说明的web开发经历的 ...
- js面向对象开发基础
js的面向对象开发能力较弱,基本是以prototype为核心的面向对象,虽然现在出了个class这玩意,但本文还是先不做探讨. 面向对象基础——构造函数方法 var Fly = function (s ...
随机推荐
- mysql概要(十二)事务
1.特性 2.开启结束取消事务:需要选择支持事务的引擎 3,隐式提交事务: 4.事务的隔离级别:
- [转载] nginx的负载均衡
原文:http://www.srhang.me/blog/2014/08/27/nginx-loabbalance/ Nginx负载均衡 一.特点 1.1 应用情况 Nginx做为一个强大的Web服务 ...
- LINUX一切皆文件
只要用过linux的筒子,或者保守点说接触到一些linux思想的同志肯定听说过这样一句话,在linux下,“一切皆是文件”! 不错,今天walfred将在快速上手linux设备驱动这一块,谈谈linu ...
- Android ViewFlipper控件实例
使用ViewFlipper实现两张图片切换效果,废话不多说,直接上代码. java源码: package com.example.viewflipper; import android.os.Bund ...
- 深入浅出RxJava(一:基础篇)
RxJava正在Android开发者中变的越来越流行.唯一的问题就是上手不容易,尤其是大部分人之前都是使用命令式编程语言.但是一旦你弄明白了,你就会发现RxJava真是太棒了. 这里仅仅是帮助你了解R ...
- Android入门:绑定本地服务
一.绑定服务介绍 前面文章中讲过一般的通过startService开启的服务,当访问者关闭时,服务仍然存在: 但是如果存在这样一种情况:访问者需要与服务进行通信,则我们需要将访问者与服务进行绑定: ...
- Three.js 3D特效学习
一.Three.js基本介绍 Three.js是JavaScript编写的WebGL第三方库.提供了非常多的3D显示功能.Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场 ...
- 正则表达式使用(Js、Java)
Js中全局替换,需要在最后加上g(global),并且使用//包围起来 1.全局替换字符+ 和 只替换第一个字符+ alert("2014+03-22++aaaa".replace ...
- html年月日下拉联动菜单 年月日三下拉框联动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 为什么MB51本位币金额和采购订单历史本位币金额不一样?
翻译 为什么物料凭证的本位币金额有时和采购订单历史记录物料的本位币金额不一致? 回答: 有2个字段对应FI存放位置.物料凭证的字段(MSEG-DMBER)是存放库存账目金额.采购订单历史(EKBE-D ...