代码信息来自于http://ejohn.org/apps/learn/. 函数和对象是不是非常相似? var obj = {}; var fn = function(){}; console.log( obj && fn );//true var obj = {}; var fn = function(){}; obj.prop = "some value"; fn.prop = "some value"; console.log( obj.prop…
代码信息来自于http://ejohn.org/apps/learn/. 可以通过函数的名字在它的内部引用它. function yell(n){ return n > 0 ? yell(n-1) + "a" : "hiy"; } console.log( yell(4) === "hiyaaaa", "在函数的内部通过它的名字访问它自己" ); 当不通过命名函数来声明时,在其内部如何调用自己? var ninja =…
代码信息来自于http://ejohn.org/apps/learn/. 可以使用哪些方式来声明函数? function isNimble(){ return true; } var canFly = function(){ return true; }; window.isDeadly = function(){ return true; }; console.log(isNimble, canFly, isDeadly);//function isNimble() function canF…
如果函数是一个对象的属性,那么它可以? var katana = { isSharp: true, use: function(){ this.isSharp = !this.isSharp; } }; katana.use(); console.log( katana.isSharp );//false; 在javascript中,函数的内部,this默认指向调用它的对象.本例katana.use(),函数use被对象katana调用,所以在函数内部,this.isSharp可以操作katan…
代码信息来自于http://ejohn.org/apps/learn/. 使用数量可变的参数对编程很有好处 function merge(root){ for(i = 0 ; i < arguments.length; i++) for(var key in arguments[i]) return root[key] = arguments[i][key] } var merged = merge({name: "John"}, {city: "Boston"…
代码信息来自于http://ejohn.org/apps/learn/. new做了什么? function Ninja(){ this.name = "Ninja"; } var ninjaA = Ninja(); console.log( ninjaA, "undefined,ninja并不是实例化" ); var ninjaB = new Ninja(); console.log( ninjaB.name == "Ninja", "…
JavaScript高级篇之Function对象 一: Function对象引入: Function对象是js的方法对象,可以用Function实例化出任何js方法对象. 例如: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD…
1. 定义 函数实际上是对象,每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定. 对于函数的定义有以下三种类型: 函数声明式定义——如 1 function sum(num1, num2) {return num1 + num2;} 函数表达式定义——如 1 var sum = function(num , num2) {return num1 + num2;}; //注意函数末尾有一个…
在javascript开发中我们会经常获取页面中的事件对象,然后来处理这些事件,例如下面的getEvent函数就是获取javascript下的页面事件对象. function getEvent(event){ return event || window.event; } 我们使用getEvent的时候可以这样调用.   并且把foo函数绑定到一个onclick事件上. 但是常用的是foo函数不会有参数,或者第一个参数没有传入,我们可以通过arguments[0]来获取第一个参数. 在IE中ev…
接受配置对象作为函数參数 尽管保持函数接受的參数的顺序非常重要,可是当函数可以接受的參数达到一定数量时.也会让用户非常头疼: var alert = new Alert(100, 75, 300, 200, "Error", message, "blue", "white", "black", "error", true); 随着函数的不断重构和进化.它可以接受的參数或许会越来越多.终于就像上面的样例那样.…