js对象学习笔记-Function类型和对象
2012-02-03 11:10
609 查看
1.构造函数
任何函数,只要通过new操作符来调用,那它就可以作为构造函数;而任何函数,入股不通过new操作符来调用,那它跟普通的函数一样。
2.函数的内部属性:arguments和this
arguments:数组类型,包含传入函数中的所有参数。arguments含一个特殊属性callee,该属性是一个指针,指向拥有这个arguments对象的函数,如下面例子:
this:指向函数执行时所处的作用域,参考如下例子:
3.每个函数都包含的两个非继承方法:apply()和call()
先看看这两个方法是使用例子:
任何函数,只要通过new操作符来调用,那它就可以作为构造函数;而任何函数,入股不通过new操作符来调用,那它跟普通的函数一样。
function Person(name){ this.name = name; this.sayName = function(){ alert(this.name); } } //当作构造函数 var person = new Person("zhangsan"); person.sayName(); //zhangsan //当作普通函数 Person("zhangsan"); //在全局作用域中调用一个函数时,this对象总是指向Global对象(在浏览器中就是window对象) window.sayName(); //zhangsan
2.函数的内部属性:arguments和this
arguments:数组类型,包含传入函数中的所有参数。arguments含一个特殊属性callee,该属性是一个指针,指向拥有这个arguments对象的函数,如下面例子:
function factorial(num){ if(num<=1){ return 1; }else{ return num* factorial(num-1); } } //使用arguments的callee属性 function factorial(num){ if(num<=1){ return 1; }else{ return num* arguments.callee(num-1); //arguments.callee 等效于拥有arguments的函数factorial } }
this:指向函数执行时所处的作用域,参考如下例子:
window.color = "red"; var o = {color:"blue"}; function sayColor(){ //在全局作用域中定义 alert(this.color); } sayColor(); //red,因为在全局作用域中使用sayColor(),所以this指向全局对象window //以下方法还可以参考使用apply()和call()来限定函数执行的作用域 o.sayColor = sayColor; //把全局函数sayColor赋值给对象o o.sayColor(); //blue,因为在o对象中使用sayColor,所以this指向o
3.每个函数都包含的两个非继承方法:apply()和call()
先看看这两个方法是使用例子:
用途一:传递参数 function sum(a,b){ return a+b; } //apply使用 function callSum1(num1,num2){ return sum.apply(this,arguments); //arguments包含传入函数的参数 } function callSum2(num1,num2){ return sum.apply(this,[num1,num2]); } //call使用,apply传入的参数是一个数组,而call则是一个个具体参数 function callSum3(num1,num2){ return sum.call(this,num1,num2); } 用途二:扩充函数运行的作用域 call用例(apply类似) window.color = "red"; var o = {color:"blue"}; function sayColor(){ alert(this.color); } sayColor(); //red sayColor.call(this); //red sayColor.call(window); //red sayColor.call(o); //blue,因为作用域在o上
相关文章推荐
- Function类型(JS高程3)—— JS学习笔记2015-6-29(第70天)
- JS 引用类型 Math 对象 JS学习笔记2015-7-3(第74天)
- js学习笔记 Function类型属性的理解
- JS 学习笔记--8---Function类型
- JS学习笔记——function方法(对象)的鉴别
- js学习笔记:引用类型——单体内置对象
- js变量与对象学习笔记
- 【python学习笔记二】对象和类型,运算符
- JavaScript学习点滴—js对象的四种类型的属性、方法的访问
- js面向对象学习笔记之五(定时器)
- 数据类型回顾——JS学习笔记2015-6-1(第45天)
- JavaScript之面向对象学习五(JS原生引用类型Array、Object、String等等)的原型对象介绍
- Javascript学习笔记:对象的属性类型
- (25)Java学习笔记——常用对象API / 基本类型包装类
- JavaScript学习笔记(二)JS对象
- js面向对象学习笔记之九(BOM 与 DOM 中常用属性分析)
- js学习笔记:引用类型——RegExp
- JS 学习笔记--3--数据类型
- JS 学习笔记--11---内置对象(Global/Math)
- 【C++】学习笔记草稿版12(类对象的类型转换)