[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 ...
随机推荐
- MyEclipse中文乱码解决方法
在Myeclipse导入一个项目,有中文乱码问题,解决方法如下: 一.将整个project设置编码UTF-8(UTF-8可以最大的支持国际化) windows->Preferences-> ...
- [转载] 多年积累的 mysql 运维经验
原文: http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=207132223&idx=1&sn=f5d98146f282 ...
- 疯狂java讲义之流程控制与数组
while package ch4; /** * Created by Jiqing on 2016/11/6. */ public class While { public static void ...
- JavaSE复习_9 集合框架复习
△列表迭代器也是不支持在迭代的时候添加元素的,只是列表迭代器自己定义了增删的方法而已.迭代器可以看成实在两个元素之间的指针,每当调用next就跳过一个元素并返回刚刚跳过的元素. △HashTable不 ...
- Java可变参数 & Python可变参数 & Scala可变参数
Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...
- ios8中,相册创建后手动删除,不能再进行创建显示
// Add a new ALAssetsGroup to the library. // The name of the ALAssetsGroup is name and the type is ...
- [html] 前端角度出发做好SEO需要考虑什么
Meta标签优化 主要包括主题(Title),网站描述(Description),和关键词(Keywords).还有一些其它的隐藏文字比如Author(作者),Category(目录),Languag ...
- laravel 开启sql查询日志
\DB::enableQueryLog(); dd(\DB::getQueryLog());
- Android LayoutInflater深度解析 给你带来全新的认识
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38171465 , 本文出自:http://blog.csdn.net/lmj ...
- Memcached使用入门
转:http://www.linuxidc.com/Linux/2011-12/49516.htm http://blog.csdn.net/wxwzy738/article/details/2370 ...