1、闭包:

①外层函数包裹受保护的变量和操作变量的内层函数;

②外层函数将内层函数返回到外部;

③调用外部函数,获得内层函数的对象;

2、面向对象:用对象描述现实一个具体事物属性和功能,按需调用功能,操作属性;

①创建对象:封装:var obj={属性名:属性值,……:……,方法名:function(){……}};对象内的方法中访问对象自己的属性:this.属性名,this默认指当前所在对象;

②new创建单独对象:var obj=new Object();obj.新属性=值;obj.新方法=function(){……};

③反复创建相同结构类型的对象:定义构造函数(constructor),function 类型名(属性参数){this.属性名=属性参数;this.方法名=function(){……}};var obj=new 类型名(属性值,……);

3、创建一个单独对象:

①对象直接量:var obj={属性名:值,方法名:function(){this.属性名}};

②new创建:var obj=new Object();obj.新属性名=值;obj.新方法名=function(){this.属性名}

4、反复创建多个同一类型相同结构对象:

①创建构造函数:function 类型名(属性参数){this.属性名=属性参数;this.方法名=function(){this.属性名}};(优点:代码重用;缺点:无法节约内存——解决方法:继承;);

②new调用构造函数——实例化(instance):var obj=new 类型名(属性值);

5、关于new的四件事:

①创建新的空对象;

②设置新对象的_proto_属性,继承构造函数的原型对象;

③使用新对象调用构造函数,将构造函数中的this替换为新对象;

④返回新对象的地址给变量;

6、原型对象(prototype):集中保存所有子对象的共有成员的父级对象;

①原型对象无需创建,每个构造函数自带原型对象;

②获得:a、子对象._proto_;b、子对象._proto_;(_proto_是内部属性,通过Object.getPrototypeOf(obj)获得obj对象的父级原型对象);

③向原型对象添加共有成员:构造函数.prototype.新成员=XXXX;

7、属性:

①修改自有属性必须用子对象:子对象.属性;

②修改共有属性必须用原型对象:父级对象.prototype.属性;

③删除属性:delete 对象.属性名;只能删除当前对象自有属性;

④自有属性:直接保存在当前对象本地的属性;判断:obj.hasOwnProperty(“属性名”);

⑤共有属性:保存在原型对象,多个子对象共享;判断:!obj.hasOwnProperty(“属性名”)&&obj.属性名!==undefined;

8、原型链:由各级对象的_proto_属性,逐级继承;

①Object.prototype是所有对象的顶级父对象;

②Function.prototype是所有函数对象的顶级父对象;

③内置对象API:对象.方法()——方法保存在对象的构造函数的prototype中;

9、继承关系判断:

①原型对象father.isPrototypeOf(child):判断father是否是child的父对象,或判断child是否继承自father;

②构造函数child instanceof 构造函数:判断child是否是构造函数创建出的实例;

10、判断对象是否为数组类型:

①原型对象:Array.prototype.isPrototypeOf(XXX);

②构造函数:XXX instanceof Array;

③根据对象class属性:Object.prototype.toString.call(obj1)===“【object Array】”;

11、重写(override):子对象在本地定义同名成员,覆盖父对象成员;

javascript_core_08之闭包、对象、原型的更多相关文章

  1. jquery学习笔记---闭包,原型链,this关键字

    网上的资料很多,关于闭包,原型链,面向对象之内的.本人也有一点自己的总结. 关于this: this 的值取决于 function 被调用的方式,一共有四种, 如果一个 function 是一个对象的 ...

  2. JavaScript函数、闭包、原型、面向对象

    JavaScript函数.闭包.原型.面向对象 断言 单元测试框架的核心是断言方法,通常叫assert(). 该方法通常接收一个值--需要断言的值,以及一个表示该断言目的的描述. 如果该值执行的结果为 ...

  3. js闭包,原型,作用域等再一次理解

    要理解闭包,原型等,首先要理解作用域 作用域:就是函数在定义的时候创建的,用于寻找使用到的变量的值的一个索引,而他内部的规则是,把函数自身的本地变量放在最前面,把自身的父级函数中的变量放在其次,把再高 ...

  4. javascript 创建对象及对象原型链属性介绍

    我们知道javascript里定义一个普通对象的方法,如: let obj = {}; obj.num = 1; obj.string = 'string'; obj.func = function( ...

  5. JavaScript对象原型写法区别

        体现对象原型分步式写法 //原型分步式写法 //构造函数 function Person(){} //对象原型 Person.prototype.name = 'Avensatr'; Pers ...

  6. Javascript高级编程学习笔记(21)—— 对象原型

    JS中对象相关的最重要的恐怕就是原型链了 原型链也是JS中对象继承的实现的基础 接昨天的文章,我们使用构造函数创建对象的时候仍然存在一些问题 那就是所有的实例没法共用一个函数 这样无疑会造成极大的内存 ...

  7. JavaScript对象原型写法详解

        体现对象原型分步式写法 //原型分步式写法 //构造函数 function Person(){} //对象原型 Person.prototype.name = 'Avensatr'; Pers ...

  8. 关于js的对象原型继承(一)

    javascript中,对象的继承是通过原型去继承. 可以这样理解:js中的对象,包含的除了属性和方法,还有一个最基本的原型__proto__对象.这个原型__proto__指向谁,这个对象就继承谁. ...

  9. jquery实现点击展开列表同时隐藏其他列表 js 对象操作 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象

    这篇文章主要介绍了jquery实现点击展开列表同时隐藏其他列表的方法,涉及jquery鼠标事件及节点的遍历与属性操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了jquery实现点击 ...

  10. JS的对象原型

    1.对象 1.1 语法 对象可以通过两种形式定义:声明(文字)形式和构造形式. 对象的文字语法: var myObj = { key : value //... }; 对象的构造语法: var myO ...

随机推荐

  1. JavaScript-事件周期-点击替换颜色

    事件周期 DOM:3个阶段 1.捕获:从最外层元素,向内层元素,逐个记录绑定的事件处理函数.默认,暂不触发任何事件 2.目标触发:优先触发目标元素绑定的事件处理函数 目标元素:实际点击的元素 3.冒泡 ...

  2. struts2是如何加载相关的package元素节点信息的

    这不是一篇纯技术文章,而是一篇分享我个人在前后端分离路上收获的点点滴滴的文章,以此来为准备尝试前后端分离或者想了解前后端分离的童鞋做一个大体的讲解. 上一家公司是家小公司,做了一年的全栈开发,对前端的 ...

  3. [UE4]自定义MovementComponent组件

    自定义Movement组件 目的:实现自定义轨迹如抛物线,线性,定点等运动方式,作为组件控制绑定对象的运动. 基类:UMovementComponent 过程: 1.创建UCustomMovement ...

  4. Restore Oracle database to another server

    1. Copy or remotely mount the backupset folder from the source server to the target server 2. On the ...

  5. (转)Android开发出来的APP在手机的安装路径是?

    一.安装路径在哪? Android应用安装涉及到如下几个目录: system/app系统自带的应用程序,无法删除.data/app用户程序安装的目录,有删除权限.安装时把apk文件复制到此目录.dat ...

  6. 转 powerdesigner12.5在64位JDK下连接mysql数据库问题

    前因:由于项目在研发的过程中,数据库字段需要不停的增加和修改,导致最初设计的数据库原型无法使用,后来就想到用powerdesinger来反转数据库表结构. 环境:win7 64位系统,本机装有64位j ...

  7. 决策树 -- ID3算法小结

          ID3算法(Iterative Dichotomiser 3 迭代二叉树3代),是一个由Ross Quinlan发明的用于决策树的算法:简单理论是越是小型的决策树越优于大的决策树. 算法归 ...

  8. Linux终端杀手、程序员利器-Tmux

        Send article as PDF      SA.Coder.经常远程.还在开一堆终端?试试 Tmux 吧,一个窗口就搞定. 目录 0.0.0.1 Tmux ? Tmux 是一个终端复用 ...

  9. .Net下的 ORM框架介紹

    在.NET平台下,关于数据持久层框架非常多,本文主要对如下几种做简要的介绍并推荐一些学习的资源: 1.NHibernate 2.NBear 3.Castle ActiveRecord 4.iBATIS ...

  10. zabbix3.x搭建(1)

    服务器端安装配置: 1).安装: yum -y install gcc gcc-c++ autoconf httpd php mysql mysql-server php-mysql httpd-ma ...