Function对象属性和方法
/*
var pattern = /^[\w]+\.(zip|rar|gz)$/; //|选择符必须用分组符号包含起来
var str = '123.7z';
alert(pattern.test(str)); function box(num1, num2) { //普通函数的声明方式
return num1 + num2;
} alert(box(1, 2)); var box = function(num1, num2) { //使用变量初始化函数
return num1 + num2;
}; alert(box(1,2)); var box = new Function('num1', 'num2', 'return num1 + num2'); //使用new的构造函数来声明函数
alert(box(1, 2));
alert(typeof box); //函数可以传递函数, //下面的例子很普通,不是作为函数来传递的,而是作为函数的返回值来传递的 function box(sum, num) {
return sum + num;
} function sum(num) {
return num + 10;
} var result = box(sum(10), 10); //20,10sum(10)这里传递的是函数的返回值,和普通的变量一样,没区别
alert(result); */ //要把函数本身作为参数传递,而不是函数的结果 function box(sum, num) {
return sum(num);
} function sum(num) {
return num + 10;
} var result = box(sum, 10); //这里sum是一个函数,当作参数传递到另外一个函数里,而不是函数的返回值
alert(result);
/*
function sum(num) {
if (num <= 1) {
return 1;
} else {
return num * sum(num-1); //4 * 3 * 2 * 1 = 24 阶乘,递归
}
} alert(sum(4)); function box(num) {
if (num <= 1) {
return 1;
} else {
return num * arguments.callee(num-1); //使用arguments.callee,调用自身,实现递归
}
} alert(box(4)); //window是一个对象,而且是JS里面最大的对象,是最外围的对象 //alert(typeof window); window是对象,类型是对象,window表示全局 alert(this); //[object Window] this目前表示的是window,因为在window的范围下
alert(typeof this); //和window一模一样,所以this就是window var color = '红色的'; //这里color就是全局变量,而这个变量又是window的属性
//alert(window.color); //这里已经很好的说明color是window下的属性
alert(this.color); //同上 window.color = '红色的'; //相当于 var color = '红色的';???,是一样的 var box = {
color : '蓝色的', //这里的color是box下的属性,也就是局部变量
sayColor : function() {
alert(this.color); //这里this,我们确定了是代表的box对象。
}
}; alert(this.color);
box.sayColor(); window.color = '红色的'; function sayColor() {
alert(this.color); //所以这里执行的时候是动态的,第一次在window下,第二次在box下
} sayColor(); //这里调用sayColor,其实范围还是在window下 var box = {
color : '蓝色的'
}; box.sayColor = sayColor; //这段代码相当于47行 box.sayColor(); //这里执行的是box里面的this.color function box(name, age) {
return name + age;
} alert(box.length); function box(num1, num2) {
return num1 + num2;
} function sum(num1, num2) { //apply和call可以冒充另外一个函数
return box.apply(this, [num1, num2]); //this表示window作用域,[]表示传递的参数
} function sum2(num1, num2) {
return box.apply(this, arguments); //这个可以当数组传递,arguments
} //alert(box(10,10)); //alert(sum(10,10));
alert(sum2(10,10)); function box(num1, num2) {
return num1 + num2;
} function sum(num1, num2) {
return box.call(this, num1, num2); //call只是传递参数不同,其他和apply一样
} alert(sum(10,10));
*/ var color = '红色的'; //全局 var box = {
color : '蓝色的' //局部
}; function sayColor() {
alert(this.color);
} //sayColor(); //全局 //用call是实现对象冒充,冒充box下,冒充window下
//sayColor.call(window); //冒充window 红色的
//sayColor.call(this); //this就是window
sayColor.call(box); //冒充box,作用域就在box对象里面,所以color就是蓝色的
Function对象属性和方法的更多相关文章
- Javascript对象属性与方法汇总
Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...
- js object 对象 属性和方法的使用
//object 对象 属性和方法的使用 var person = new Object(); person.name="张海"; person.age="; perso ...
- 转: JavaScript 获取对象属性和方法
一.获取对象属性和方法 Object.keys()for in 返回对象的可枚举属性和方法的名称数组. Object.getOwnPropertyNames() 返回的数组的所有属性(可枚举或不可枚举 ...
- Js基础知识7-JavaScript所有内置对象属性和方法汇总
对象什么的,程序员可是有很多呢... JS三大对象 对象,是任何一个开发者都无法绕开和逃避的话题,她似乎有些深不可测,但如此伟大和巧妙的存在,一定值得你去摸索.发现.征服. 我们都知道,JavaScr ...
- JavaScript 获取对象属性和方法
ShineJaie 原创整理,转载请注明出处. 一.获取对象属性和方法 Object.keys() 返回对象的可枚举属性和方法的名称数组. Object.getOwnPropertyNames() 返 ...
- JavaScript 访问对象属性和方法及区别
这篇文章主要介绍了浅析JavaScript访问对象属性和方法及区别的相关资料,仅供参考 属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸. ...
- getSelection、range 对象属性,方法理解,解释
网上转了一圈发现没有selection方面的解释,自己捣鼓下 以这段文字为例子.. <p><b>法国国营铁路公司(SNCF)20日承认,</b>新订购的2000列火 ...
- ES6之6种遍历对象属性的方法
ES6之6种遍历对象属性的方法 for ... in 循环遍历对象自身的和继承的可枚举属性(不含Symbol属性). Obejct.keys(obj),返回一个数组,包括对象自身的(不含继承的)所有可 ...
- JS枚举对象属性的方法及其区别
愉快的中秋节要过去了,国庆倒计时两个周!!! 闲话不多说,那今天我们来看一看JS中枚举对象属性的方法有哪些以及他们的区别 首先在JS里面枚举对象属性一共有三种方法 for in: 会遍历对象中所有的可 ...
随机推荐
- 第六篇 SQL Server安全执行上下文和代码签名
本篇文章是SQL Server安全系列的第六篇,详细内容请参考原文. SQL Server决定主体是否有必要的执行代码权限的根本途径是其执行上下文规则.这一切都可能复杂一个主体有执行代码的权限,但是却 ...
- iOS - (base64对字符串加解密)
今天公司让做支付系统,为了安全起见,需要对一些数据进行加密,然而我首想到的就是 base64 ,严格来说这不是一种加密方式,这只是将原有的一些字符串或者其它的一些文本进行一个转化而已,就是转化成数字, ...
- 数据块损坏(block corruption)
分为物理损坏和逻辑损坏-物理损坏一般指数据块头部不可以访问.数据块校验值不合法,数据块格式不再是oracle承认的格式-逻辑损坏一般是在物理性结构完整的情况下,数据的内容在含义上不正确,比如保存了不允 ...
- MVC 学习系列-Controller
MVC最核心的也就是Controller了,控制器(controller)在功能中起到了核心功能. 1,)在MVC类库中,根据URL,通过MVCHandler进入MVC处理系统中, 2,)解析初始化对 ...
- centos 6.4下安装postgresql 9.2
我的linux版本是centos 6.4 ,准备安装postgresql 9.2 根据官方说明: http://www.postgresql.org/download/linux/redhat/ 缺省 ...
- 资源Createwindow,对应标识符,绑定窗口
问? 定义一个CEdit cedit1:怎么和IDC_EDIT1 关联,可以在CEdit.Create()里传进去或者在DoDataExchange()里面绑定,是不是一定要先弄出个IDC_EDIT1 ...
- Java基础(56):Java---Assertion的试用(华为OJ里的Java题目的用例检测就是用的断言)
一.assertion的意义和用法 J2SE 1.4在语言上提供了一个新特性,就是assertion功能,它是该版本在Java语言方面最大的革新. 从理论上来说,通过 assertion方式可以证明程 ...
- linux环境变量与本地变量
两者不同的是. 环境变量可以在shell的子进程中使用, 而本地变量不同. 每当连接上服务器时,服务器就会通过帐号密码运行一个SHELL,我们所做的工作都在这个SHELL上,特殊方法除外(如,守护进程 ...
- springday04-go2
练习:计算一个人的bmi指数.算法如下: 身高 单位是米 比如1.70 体重 单位是公斤 比如90 bmi指数 = 体重/身高/身高 如果bmi>24过重,否则正常.视图需要两个,一个是bmi_ ...
- CCF真题之日期计算
201509-2 日期计算 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年的2月有29天.满足下面条件之一的是闰年: 1) 年份是4的整数倍,而且不是100的整数倍: 2 ...