JS 中的 call、apply、bind 方法

  • call()apply()bind()都是函数对象的一个方法,它们的作用都是改变函数的调用对象。它的使用极大的简化了代码的调用

一、方法定义

  • call方法
  • 语法
1
fun.call(thisArg[, arg1[, arg2[, ...]]])
  • thisArgfun函数运行时指定的this值,可能的值为:
    • 不传,或者传nullundefinedthis指向window对象
    • 传递另一个函数的函数名fun2this指向函数fun2的引用
      值为原始值(数字,字符串,布尔值),this会指向该原始值的自动包装对象,如 String、Number、Boolean
    • 传递一个对象,函数中的this指向这个对象

阅读全文

OOP之原型与原型链

prototype原型对象


  • 每个函数都有一个默认的prototype属性,其实际上还是一个对象,如果被用在继承中,姑且叫做原型对象
  • 在构造函数中的prototype中定义的属性和方法,会被创建的对象所继承下来。举个栗子:

阅读全文

OOP之类与对象

对象


对象的含义
  • 所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成

阅读全文

arguments详解

每个函数都会有一个Arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式”[]”引用arguments的元素。arguments.length为函数实参个数,arguments.callee引用函数自身。

阅读全文

JS 中的事件绑定、事件监听、事件委托

事件绑定


  • 要想让 JavaScript对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数。所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称

阅读全文

Javascript数组详解

数组的定义


  • 数组是按序号排列的一组值,每个值的位置都有编号(从0开始)。数组本质上是一种特殊的对象。它的键名是按(0,1,2...)排列的一组数字

阅读全文

JS常用的内置函数整理

String字符串对象

  • length 属性 长度
  • concat(String) 连接两个或更多个字符
  • indexOf(string) 返回出现字符的位置
  • substr(num1,[num2])截取字符串
  • toLowerCase()转成小写
  • toUpperCase()转成大写
  • replace(str1,str2) 字符串替换

阅读全文

MVC、MVP、MVVM之间的关系

一、MVC


什么是MVC


  • MVC是一种模式,它将应用分为3个部分:数据(模型)、表现层(视图)、用户交互层(控制器)
  • 一个事件的处理大概是这样
    • 用户和应用产生交互
    • 控制器的事件处理器被触发
    • 控制器从模型中请求数据,并将其交给视图
    • 视图将数据呈现给用户

阅读全文

Canvas 绘制八大行星

在线演示地址 http://codepen.io/poetries/pen/KNZLJZ

1
2
3
<canvas width="1000" height="1000" id="canvas" style="background:#000;">
您的浏览器不支持,请升级浏览器!
</canvas>

阅读全文

Canvas 绘制粒子动画背景

1
<canvas id="canvas">您的浏览器不支持,请升级最新的版本!</canvas>

阅读全文