Summer Training Day 12.
call&apply&bind
apply()
|
|
apply()和call()
|
|
“
thisArg
在 fun 函数运行时指定的 this 值。需要注意的是,指定的 this 值并不一定是该函数执行时真正的 this 值,如果这个函数处于非严格模式下,则指定为 null 或 undefined 时会自动指向全局对象(浏览器中就是window对象),同时值为原始值(数字,字符串,布尔值)的 this 会指向该原始值的自动包装对象。
argsArray
一个数组或者类数组对象,其中的数组元素将作为单独的参数传给 fun 函数。如果该参数的值为null 或 undefined,则表示不需要传入任何参数。”
以上为MDN的解释.其实就是改变this指向,从原来的改为指向thisArg.
call和apply类似,不同点在于call第二项需要直接传递给函数,即一项一项写出来,apply可以以一个数组形式写出来.
bind()
bind会创建一个函数的实例,this值会绑定到传给bind()函数的值.本质上同apply&call但是需要赋给变量.
json
(Javascript Object Notation.)是一种数据格式而非语言.
语法.
可以表示以下三种类型的值.
简单值
数字,字符串,布尔值,null
(字符串必须使用双引号)
对象
JSON无变量,没有变量的概念,所以没有声明变量这一步骤,语句结束也无分号.
如:
json中不能写注释.
数组
|
|
解析与序列化选项.
stringify() 与 parse()
前者转化为JSON字符串,后者解析.
前者输出的JSON不包含任何空格字符或缩进,因此保存在jsontext中的字符串显示如下:
所有函数及原型成员都会被有意忽略,值为undefined的任何属性也会被跳过.
序列化选项
第二个参数: 函数
第三个参数: 缩进和空白符
换行符自动包含,缩进空格数为4;
也可以变成:
缩进字符串最长不能超过10个,若超过了只显示前10个.
可以在js任意对象中添加toJSON()方法,作为函数过滤器的补充.
stringify()顺序:
1.如果存在toJSON()方法且能通过它取得有效值,则调用该方法,否则返回对象.
2.如果提供了第二个参数,应用改函数过滤器.传入函数过滤器的值是第一步返回的值.
3.对第2步返回的值进行相应序列化.
4.若提供了第三个参数,执行相应格式化.
Ajax待续..
以上.