1. 调用
1.1 函数调用
function f(){
// TODO xxxx
}
f();// 函数调用
1.2方法调用
var obj = {
m:function(){
// TODO xxxx
}
}
obj.m();
区别:
函数调用在ECMAScript3和非严格下的ECMAScript5调用的上下文是(this)全局对象,但是在严格模式下调用的上下文是undefined
方法调用上下文 this指向本身
eg
var obj = {
m:function(){
var self = this;
console.log(this === obj); // true
f();
function f(){
console.log(this === obj); //false;
console.log(this); // this 为undefined 或者为全局上下文对象
console.log(self === obj); // true
}
return this;
}
}
obj.m();
2. 传递参数
2.1 少传递 --> 变成undefined
function f(a,b,c){
console.log(a); // a = 1
console.log(b); // b = 2
console.log(c); // c = undefined
}
f(1,2);
2.2 多传递 --> 通过 arguments来获取
function f(a){
console.log(a); // 1
console.log(arguments.length); //2
console.log(arguments[0]); //1 == a
console.log(arguments[1]); //2 == 第二个参数
console.log(arguments[2]); //undefined
}
f(1,2);
注: arguments 并不是数组,只是碰巧用数字做索引,以及一个length属性
2.3. arguments的两个属性callee 与 caller
在非严格模式下,callee 指:
当前正在执行的函数
caller 指:
调用当前正在执行的函数的函数
var f = function(x){
if(x <=1){
return 1;
}
return x*arguments.callee(x-1);
}
f(5); // 进行递归调用 120
3. 做值的函数
function square(x){
return x*x;
}
var s = square;
square(4);//16
s(5); //25
/**
* a[0]: 是一个function
* a[1]: 20
*/
var a = [function square(x){return x*x;},20];
a[0](a[1]); //400
//操作数,function作为参数传递
function add(x,y){
return x+y;
}
function operate(operator,operand1,operand2){
return operator(operand1,operand2);
}
operate(add,1,2);
分享到:
相关推荐
It documents every class, object, constructor, method, function, property, and constant defined by JavaScript 1.5 and ECMAScript version 3. Part IV is a reference for client-side JavaScript, ...
深入理解JavaScript系列(10):JavaScript核心(晋级高手必读篇) 深入理解JavaScript系列(11):执行上下文(Execution Contexts) 深入理解JavaScript系列(12):变量对象(Variable Object) 深入理解...
深入理解JavaScript系列(10):JavaScript核心(晋级高手必读篇) 深入理解JavaScript系列(11):执行上下文(Execution Contexts) 深入理解JavaScript系列(12):变量对象(Variable Object) 深入理解...
这一章包含了 JavaScript 的核心对象 Array,Boolean,Date,Function,Math,Number,Object 和 String。这些对象同时在客户端和服务器端的 JavaScript 中使用。 Array 属性 方法 Boolean 属性 方法 Date 属性 方法...
Python执行PyexecJs通过Js的AST树结构获取Frida-Js脚本中rpc.exports的方法以及对应方法的参数个数,根据方法名和参数个数通过types.FunctionDef从Python AST字节码来动态生成新的Function对象,并且结合pydantic的...
这一章包含了 JavaScript 的核心对象 Array,Boolean,Date,Function,Math,Number,Object 和 String。这些对象同时在客户端和服务器端的 JavaScript 中使用。 Array 属性 方法 Boolean 属性 方法 Date ...
第二部分 JavaScript核心 第4章 语言结构 4.1 JavaScript的基本文法 4.2 常量和变量 4.3 表达式和运算符符 4.4 控制语句 句 4.5 总结 第5章 数据类型 5.1 基本数据类型 5.2 数组和...
用于返工的 function() 插件,以前包含在核心中 添加用户定义的 CSS 函数。 例如创建black(0.5)快捷方式,以替换 long rgba(0, 0, 0, 0.5) 。 var rework = require ( 'rework' ) , var reworkFunction = ...
... 目录: ...07 JavaScript核心编程 08 DOM编程 09 阶段项目03 10 服务器端开发技术 11 HTTP协议 12 HTML5高级 13 阶段项目04 14 JQUERY 15 AJAX 16 阶段项目05 17 Bootstrap 18 ANGULARJS 19 拓展进阶
确保您有 Mailman 核心正在运行。 您甚至可以在节点的交互式 cli 中对其进行测试: > var mailman = require('mailman-js'); > var client = new mailman.client('http://localhost:8001/3.0', {username: '...
4.3 JavaScript核心对象 4.4 文档对象的引用 4.4.1 通过对象位置访问文档对象 4.4.2 通过name属性访问文档对象 4.4.3 通过id属性访问文档对象 4.4.4 通过联合数组访问文档对象 4.5 创建和使用自定义对象 4.5.1 通过...
一个简单的 JavaScript 库,它封装了 Google Docs JSON API。 套件的一部分(但不依赖于核心 Recline)。 用法 从 API 获取数据: recline.Backend.GDocs.fetch({ url: '...
第9章 JavaScript核心对象 9.1 什么是核心对象 9.2 数组对象 9.2.1 数组的声明及填充 9.2.2 Array对象属性 9.2.3 关联数组 9.2.4 嵌套数组 9.3 数组方法 9.4 Date对象 ...
精妙的 tmpl 前端模板类开源的不少,但最属 jQuery 作者 John Resig 开发的 “javascript micro templating” 最为精妙,寥寥几笔便实现了模板引擎核心功能。 它的介绍与使用方式请看作者博客:...
掌握JavaScript的核心语法 会使用工具进行代码调试 3.什么是JavaScript? 是一种基于对象和事件驱动的、并具有安全性能的脚本语言 4.特点: 向HTML页面中添加交互行为 脚本语言,语法和Java类似 解释性语言,...
azure-function-nodejs-你好使用Node.js的简单或无服务器计算一些有趣的链接:使用Azure Functions核心工具您可以通过运行以下命令创建一个新的功能项目:func init 这将创建一个骨架的天蓝色函数: host.json存储...
因此,越来越多的人开始重新认识这门脚本语言,并在不断地探索关于JavaScript核心思想和实现原理,过程中遇到了一些非常混淆的问题。本文着重解释一个比较常见但是非常容易使开发人员或者是初学JavaScript的人非常...
核心代码: // 减 redu.addEventListener("click", function(){ if(Number(num.value) > 0 ){ num.value = Number(num.value) - 1 localStorage.setItem("proNum", num.value); } }); 【适用人群】 所有...
通过将闭包视为核心语言构件的组成部分,JavaScript语言展示了其与函数式编程语言的紧密联系。由于能够简化复杂的操作,闭包在主流JavaScript库以及高水平产品代码中日益流行起来。 一、变量的作用域 在介绍闭包...
本文实例为大家分享了JavaScript canvas实现流星特效展示的具体代码,供大家参考,具体内容如下 function easeInQuad(curtime,begin,end,duration){ let x = curtime/duration; //x值 let y = x*x; //y值 ...