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. WebRTC开发基础(WebRTC入门系列2:RTCPeerConnection)

    RTCPeerConnection的作用是在浏览器之间建立数据的“点对点”(peer to peer)通信. 使用WebRTC的编解码器和协议做了大量的工作,方便了开发者,使实时通信成为可能,甚至在不 ...

  2. [POC]K8 DLLhijack Test

    POC: 2016.11 Winrar却持 XP资源管理器却持 DLL却持VS全版本 https://www.cnblogs.com/k8gege/p/10261254.html POC:https: ...

  3. Jenkins配置项目

    前提:服务器上部署了jenkins+Tomcat,并且安装了所需插件 1.新建项目 -- 项目配置 2.配置git地址 出现上述错误是因为该git地址,在jenkins服务器上无权限访问.在git上开 ...

  4. python 生成器 迭代器

    阅读目录 一 递归和迭代 二 什么是迭代器协议 三 python中强大的for循环机制 四 为何要有for循环 五 生成器初探 六 生成器函数 七 生成器表达式和列表解析 八 生成器总结 一 递归和迭 ...

  5. 通过XMLHttpRequest和jQuery两种方式实现ajax

    一.XMLHttpRequest实现获取数据 不使用jQuery实现页面不刷新获取内容的方式,我们这里采用XMLHttpRequest原生代码实现:js代码如下: //1.获取a节点,并为其添加Onc ...

  6. C++程序员面试题目总结(涉及C++基础、多线程多进程、网络编程、数据结构与算法)

     说明:C++程序员面试题目总结(涉及C++基础知识.多线程多进程.TCP/IP网络编程.Linux操作.数据结构与算法) 内容来自作者看过的帖子或者看过的文章,个人整理自互联网,如有侵权,请联系作者 ...

  7. 关于 ASP.NET Web 应用中 async/await 注意问题

    System.NullReferenceException: Object reference not set to an instance of an object. at System.Web.T ...

  8. 【nodejs】文件上传demo实现

    文件结构: index.js var server = require('./server.js'); var router = require('./router.js'); var request ...

  9. JavaScript -- Style

    -----055-Style.html----- <!DOCTYPE html> <html> <head> <meta http-equiv="c ...

  10. Python中模块的发布与安装

    模块(Module) Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个 ...