- 函数和属性的区别
任何函数只要作为方法调用 实际上都会传入一个隐形的实参—-这个实参是一个对象
在链式调用中 当不需要返回值时,最好直接返回this,可以不停的进行设置不同的属性;
嵌套函数中的this, 其this值不是全局对象(非严格模式)就是undefined(严格模式下)
构造函数调用
方法,或者函数在调用之前使用 new关键字, 就会先调用构造函数,
构造函数调用和 函数,方法 在实参,上下文和返回值方面都有不同
- 构造函数在没有实参的时候,可以省略圆括号
简介调用
其中的两个方法call()和apply()可以用来间接地调用函数。两个方法都允许显式指定调用所需的this值,也就是说,任何函数可以作为任何对象的方法来调用,哪怕这个函数不是那个对象的方法。两个方法都可以指定调用的实参。
- 函数中的 形参 arguments[] 是一个类数组对象
作为值的函数
function add(){}
var a.m = function(){}
闭包
// 全局变量
var scope=”global scope”;
function checkscope(){
var scope =”local scope”;
function f(){return scope;}return f;)
checkscope()()
// local scope
- 函数作用域链,
- 词法作用域
函数定义时的作用域链,到函数执行时依然有效,
在函数调用之后,函数内部的变量会销毁,
在函数内部,定义的函数,如果引用到了函数的变量,这时就会有一个外部引用指向这个嵌套的函数