js 点滴
2015-09-15 07:16
567 查看
1 方法的外部属性
var test=function(num1,num2,num3){
alert(num1+num2);
}
alert(test.length);//方法的属性lenght:形参的个数
2 this
函数的作用域
3 call aply
function each(arr,func){
if(arr instanceof Array){
for(var i=0;i<arr.length;i++){
var item=arr[i];
//通过函数对象的call/apply方法改变函数的作用域(为调用的函数的this赋值)
//func.call(item,i,item);
func.apply(item,[i,item]);//apply后面传的是数组
}
}
}
var arr=[1,2,3,4,5];
each(arr,function(index,item){
alert(this);
})
其实apply和call真正的强大用途在于,能够扩充函数赖以动作的作用域
这样扩充的最大好处就是对象不需要与方法有任何耦合关系
4 eval
eval方法可以直接调用浏览器的js引擎,直接执行传入的js代码字符串
var str="var i=0;";//eval中创建的变量就是添加到了当前eval所在的执行环境,全局执行环境下 调用eval创建变量那就添加到了window下
eval(str1);
function testEval(){
eval("var a=123;");//在方法中调用eval创建变量,那么这个变量就添加到了函数的作用域中(局部变量)
}
5
alert(object instanceof Function);//true 说明object 就是一个方法
6
function Person(){
alert("person的构造函数"+this);//此时this是new关键字创建的对象
}
var p1=new Persion();//方法名相当于类名,方法体相当于类的构造函数
7 方法的3种创建方式
1 声明式方法 :有浏览器优先级 预先创建声明式方法对象 然后才执行页面的js代码
function test(){
alert("test");
}
2 匿名变量方式 方法(非声明式)
var test2=function(){
alert("test2");
}
3 创建对象方式
var test3=new Function("x","y","alert('test3,x='+x+',y='+y);");
var test=function(num1,num2,num3){
alert(num1+num2);
}
alert(test.length);//方法的属性lenght:形参的个数
2 this
函数的作用域
3 call aply
function each(arr,func){
if(arr instanceof Array){
for(var i=0;i<arr.length;i++){
var item=arr[i];
//通过函数对象的call/apply方法改变函数的作用域(为调用的函数的this赋值)
//func.call(item,i,item);
func.apply(item,[i,item]);//apply后面传的是数组
}
}
}
var arr=[1,2,3,4,5];
each(arr,function(index,item){
alert(this);
})
其实apply和call真正的强大用途在于,能够扩充函数赖以动作的作用域
这样扩充的最大好处就是对象不需要与方法有任何耦合关系
4 eval
eval方法可以直接调用浏览器的js引擎,直接执行传入的js代码字符串
var str="var i=0;";//eval中创建的变量就是添加到了当前eval所在的执行环境,全局执行环境下 调用eval创建变量那就添加到了window下
eval(str1);
function testEval(){
eval("var a=123;");//在方法中调用eval创建变量,那么这个变量就添加到了函数的作用域中(局部变量)
}
5
alert(object instanceof Function);//true 说明object 就是一个方法
6
function Person(){
alert("person的构造函数"+this);//此时this是new关键字创建的对象
}
var p1=new Persion();//方法名相当于类名,方法体相当于类的构造函数
7 方法的3种创建方式
1 声明式方法 :有浏览器优先级 预先创建声明式方法对象 然后才执行页面的js代码
function test(){
alert("test");
}
2 匿名变量方式 方法(非声明式)
var test2=function(){
alert("test2");
}
3 创建对象方式
var test3=new Function("x","y","alert('test3,x='+x+',y='+y);");
相关文章推荐
- JSP经典学习笔记(包含各种入门常用语法)
- JSP基本语句用法总结
- JSP学习之Servlet用法分析
- JSP常见的文件操作小结
- js正则表达式验证大全(收集)
- js正则表达式基本语法(精粹)
- javascript实现在指定元素中垂直水平居中
- javascript DOM编程艺术笔记——CH7 creating markup on the fly
- javascript DOM编程艺术笔记——CH5 Best practise
- javascript DOM编程艺术笔记——CH3 DOM
- 最简单的可取消多选效果(以从水果篮中挑选水果为例)【jsDEMO】
- [LeetCode][JavaScript]Binary Tree Inorder Traversal
- javascript数组的其他方法
- javascript中使用正则表达式删除前后空格的方法
- JavaScript防止网页被拷贝程序代码——SHOPXX
- js比较大小容易忽略的问题
- JavaScript函数之高阶函数
- 【JavaScript】学习笔记(对象的访问,创建;for-in循环)
- 【JavaScript】DOM之我的初步理解
- JS MD5