Scoping 全局与局部

全局变量可用在所有环境中,局部变量只可用在局部
js中连接变量至一个从未声明的变量,后面的变量自动提升成一个全局变量(不要这样用,不易阅读)
只有function(){中才算局部}
 
var makearray=fuction(){
    return[];
};
var array1=makearray();
var array2=makearray();
log(array1===array2);     //will return false.
 
closures 闭包
 Retaining Access to Functions
1passing to settimeout
2returing function from new  fuction
3saving  function to a global var
 
将function object 存入array,并且在调用的时候function运行的scope始终在定义的那一层(closure),并且两者互不干扰
var sagas=[];//function外
sagas.push(function(){...}); // function内
 
关键字this
function使用this时,this代表调用它的那个元素
function(name1,name2){name1,name2为function内的两个临时变量,调用时赋值}
当原素没有任何属性可用来调用this时,可以使用.call()将this绑定到元素object上
SetTimeOut(fn,1000)定时器  如果这个定时fn没有输入的话 可能会输出undefined
只有在settimeout这个fn里面,调用fn的那一行里绑定原素,this才能够被绑定
SetTimeOut(object.fn,1000)是无法将this绑定到object上的
比较好的使用方法是重新写一个fn  如settimeout(function(){ r.method(g.b)},1000)
使用 new做前缀  系统会自动生成一个新的对象
 
 Prototype Chains 原型链
var blue = extend({},gold); 初始时拷贝gold的属性,只执行一次 (blue 只有1层 gold值不更新)
var rose = Object。create(gold);传递gold的属性,先从rose中寻找属性没有再向上一级查找 (gold--》rose 2层 gold值更新)
所有的原型汇总到一个,然而array有一个大的分支,所以原型分为object和array
 
code reuse代码的重复利用
利用obj作为对象代替this(closure方法)减少内存,提高性能()
批量初始化对象,利用function功能封装属性
重复功能写成function,然后做成属性调用
 
构造函数functional classes

面向对象的JS随笔的更多相关文章

  1. 面向对象原生js幻灯片代淡出效果

    面向对象原生js幻灯片代淡出效果 下面是代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...

  2. 面向对象的js编程 Call和apply方法

    JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 一.方法定义 1.call 方法 语法:call([thisObj[,arg1[, arg2[, [,.arg ...

  3. 面向对象的JS(一)

    JavaScript是弱类型,可变性强 /*JavaScript和其他的语言类似,也是面向对象,自然也就是存在类和对象(对象是类的实例化)*/ //1.JS对象 var empty = {}; //没 ...

  4. 以纯面向对象的JS编写最基本的数据字典案例

    之前有讲到过数据字典,什么是数据字典,用来干啥的,这个不细说了,今天来说说如何实现数据字典功能 无非就是维护数据字典,对数据字典对象进行增删改成,曾经我写过一个页面跳转形式的,十分简单,不说了,今天用 ...

  5. 面向对象版js分页

    基于前一个js分页,我将代码改成一个面向对象版的js分页,代码如下 http://peng666.github.io/blogs/pageobj <!DOCTYPE html> <h ...

  6. JavaScript面向对象(一)——JS OOP基础与JS 中This指向详解

      前  言 JRedu 学过程序语言的都知道,我们的程序语言进化是从"面向机器".到"面向过程".再到"面向对象"一步步的发展而来.类似于 ...

  7. js随笔

    在js中,一个[]认为是数组:{}认为是Json对象:

  8. ❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️html,js随笔。❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️

    a标签本身的文字居中. a{ display:block; text-align:center; } 设置div1在另一个div2里居中,(写了左边margin 就别写右边了不然ie6有毛病,当然本身 ...

  9. js 随笔

    setInterval:即使在方法中使用了stopInterval这个方法也要执行完才会停止自行重复执行,解决:使用return false来跳出方法. JS string和num:当一个是字符串数字 ...

随机推荐

  1. Spring常用知识点

    说一下spring中Bean的作用域 singleton: Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象.Singleton作用域是Sprin ...

  2. elasticsearch5.6.3插件部署

    需要注意的是,5.x和2.x插件方面改动很大.参考:https://www.elastic.co/blog/running-site-plugins-with-elasticsearch-5-0.因为 ...

  3. Ubuntu系统的安装(虚拟机) 并配置C/C++编译器

    一.系统的初始化配置 1.配置静态IP和DNS 配置静态IP 1.sudo vim /etc/network/interfaces,修改文件内容如下: auto eth0  #表示让网卡开机自动挂载e ...

  4. JobScheduler android任务调度处理组件(类似QuartZ)

    JobScheduler是Android L(API21)新增的特性,用于定义满足某些条件下(电量,网络,时间,屏幕熄/亮 ,设备是否空闲 等)执行的任务.它的宗旨是把一些不是特别紧急的任务放到更合适 ...

  5. makemigrations migrate

    教程 如何重置迁移 (图片:https://www.pexels.com/photo/sky-flying-animals-birds-1209/) Django迁移系统的开发和优化使其能够进行大量迁 ...

  6. C++ STL基本容器的使用(vector、list、deque、map、stack、queue)

    1.关联容器和顺序容器 C++中有两种类型的容器:顺序容器和关联容器,顺序容器主要有:vector.list.deque等.关联容器主要有map和set.如下图: 1.vector基本使用 #incl ...

  7. Java总结:开发环境

    更多请查看在线文集:http://android.52fhy.com/java/index.html Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言 ...

  8. Ceph/共享存储 汇总

    Ceph 存储集群 - 搭建存储集群 Ceph 存储集群 - 存储池 Ceph 块设备 - 命令,快照,镜像 Ceph 块设备 - 块设备快速入门 OpenStack 对接 Ceph CentOS7 ...

  9. Hibernate进行对象的增删改查

    首先我们看看hibernate手动配置步骤 (这个了解一点就可以了,以后是不会自己全部手动配置的) 1.    创建WEB项目 2       下载hibernate-release-4.3.11.F ...

  10. JavaScript回调函数及数组方法测试

    JavaScript回调函数及数组方法测试 具体代码如下: <!DOCTYPE html> <html lang="en"> <head> &l ...