Javascript基础知识笔记三
一、通过构造函数创建函数
- 函数也是一个对象,而且是具有功能的对象
- 创建函数对象:var fun=new Function();
- 创建函数:var fun=new Function(‘console.log(“123”)’);
- 函数也可以添加属性:fun.hello=“hello”
//创建函数对象
var fun=new Function();
console.log(typeof fun); //function//给函数添加函数体
var fun1=new Function('console.log('函数体')');
fun1(); //函数体//给函数添加属性
var fun2=new Function();
fun2.hello="hello";
console.log(fun2.hello); //hello
二、函数声明
- 语法:function 函数名([形参1,形参2…]){函数体}
- 调用该函数时解析器不会检查实参的类型
- 调用该函数时解析器不会检查实参的数量
//不会检查实参的类型
function fun1(a,b){console.log(a+b);
}
fun1(123,undefined); //NaN//不会检查实参的数量
function fun1(a,b){console.log(a+b);
}
fun1(123,undefined,123,null,"321"); //NaN
三、函数的形参和返回值可以是任何类型的数据
- 任何类型的数据:String Number Boolean null undefined object function
- 区分函数名,函数名()区别
//形参为function
function sum(a,b){console.log(a+b);
}
function fun1(a){a(1,2); //执行函数
}
fun1(sum); //3//返回值为function
function fun1(){function fun2(a){console.log(a+2);}return fun2;
}
var fun=fun1();
fun(1); //3
//上面两个式子可以等价于 fun1()();//函数名,函数名()区别
var fun=function(){return 1;
}
fun(); //是调用函数
fun; //函数对象
四、立即执行函数
- 语法:(函数)();
- 只执行一次
(function(){console.log("立即执行");
})(); //立即执行
五、函数与方法
- 函数是全局下的,方法是定义在对象下的
//函数
Number('123');//方法
var obj={name:"小明"//对象obj的方法sayName:functtion(){console.log(this.name);}
}
六、this的指向基础问题
- 解析器在调用函数时每次都会向函数内部传递一个隐含的参数(上下文对象)
- 根据函数的调用方式的不同,this会指向不同的对象
- 以函数的形式调用时,this永远指向window对象
- 以方法的形式调用时,this是指向调用方法的那个对象
//隐含参数this
function fun(){console.log(this);
}
fun(); //window//this会指向不同的对象
var name="全局下的变量(this指向window)"
function fun(){console.log(this.name);//this根据传递的对象获取对应的值}
var obj1={name:"指向调用者obj1",sayThis:fun
};
var obj2={name:"指向调用者obj2",sayThis:fun
};
obj1.sayThis(); //指向调用者obj1
obj2.sayThis(); //指向调用者obj2
fun(); //全局下的变量(this指向window) 等价于window.fun();
欢迎访问我的个人博客
Javascript基础知识笔记三相关推荐
- Jquery源码中的Javascript基础知识(三)
这篇主要说一下在源码中jquery对象是怎样设计实现的,下面是相关代码的简化版本: 1 (function( window, undefined ) { 2 // code 定义变量 3 jQuery ...
- JavaScript基础知识笔记
基础语法 /* 多行注释 JS注释 多行注释,注释中的内容不会被执行,但是可以在源代码中查看 要养成良好的编写注释的习惯,也可以通过注释来对代码进行一些简单的调试 *///单行注释 //alert(& ...
- javascript基础知识笔记整理——javaweb笔记
1.JavaScript 介绍 Javascript 语言诞生主要是完成页面的数据验证.因此它运行在客户端,需要运行浏览器来解析执行 JavaScript 代码. JS是Netscape网景公司的产品 ...
- JavaScript基础知识(三个判断、三个循环)
三个判断 if-else-只会执行其中一个条件 如果if条件中只有一个值,那么会默认转布尔: if(1=="1"){ // 当括号中条件为true时,执行此处的代码 console ...
- HTML5学习笔记 —— JavaScript基础知识
HTML5学习笔记 -- JavaScript基础知识 标签: html5javascriptweb前端 2017-05-11 21:51 883人阅读 评论(0) 收藏 举报 分类: JavaScr ...
- JS学习笔记二——JavaScript 基础知识
JavaScript 基础知识 一.JavaScript 变量 二.JavaScript 的输出 三.JavaScript 运算符 四.结语 一.JavaScript 变量 变量是指在程序运行过程中, ...
- access2013数据库实验笔记_医学科研实验基础知识笔记(十):甲基化
往期回顾 医学科研实验基础知识笔记(一):细胞增殖 医学科研实验基础知识笔记(二):细胞凋亡检测 医学科研实验基础知识笔记(三):细胞周期检测 医学科研实验基础知识笔记(四):细胞自噬研究策略 医学科 ...
- JavaScript 基础知识 - DOM篇(二)
7. 节点操作 7.1 节点的属性 节点分类: 标签节点 文本节点 属性节点 注释节点 节点常用的属性: nodeType:节点的类型 nodeName:节点名称 nodeValue:节点值 常见的节 ...
- javaweb(02) JavaScript基础知识
javaweb(02): JavaScript基础知识 JavaScript简介 为什么出现JavaScript Javascript是什么 JavaScript和Java的关系? 就像卡巴斯基和巴基 ...
- Javascript基础知识之四(常用数组方法)
一.MDN链接 Array - JavaScript | MDNJavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象.https://developer.moz ...
最新文章
- Visual Transformers: Token-based Image Representation and Processing for Computer Vision
- python与excel做数据可视化-用Python进行数据可视化的10种方法
- [LeetCode]Add Binary
- keras从入门到放弃(二十一)LSTM处理 RNN文本分类
- step5 . day2 网络编程 基于TPC协议的网络编程流程及API
- 安装版win7安装时分区
- Python之路第二天
- firefox与IECss的区别
- paip.提升用户体验---防止windows假死之CPU 100%解决
- 哈工大计算机系统大作业 程序人生-Hello’s P2P From Program to Process
- 科学院计算机研究所谢教授,谢维波
- VS下使用LoadLibrary加载dll失败
- 父页面js监听iframe内子页面并作出响应
- C语言程序设计第一到五章思维导图总结
- 数仓01-概念的理解和方法论
- 密码学之RSA与AES加密解密在项目中的应用
- CCNP路由实验之五 动态路由协议之 OSPF
- 怎样退出计算机安全模式,如何退出?进入安全模式之后如何安全的退出啊 – 手机爱问...
- WebSocket区分不同客户端方法
- ##求助!Python编程从入门到实践 外星人飞船问题
热门文章
- 给云服务器上传文件,如何给云服务器上传文件
- vue项目打包部署到Tomcat上,一刷新就报错404
- 约数定理和分解质因数
- android inject so,android hook 框架 libinject 如何实现so注入
- python变量定义模糊_刚接触python,对变量还有点模糊,下面的代码帮忙看下
- php mysql update 不成功也不提示_php与MySQL(基本操作)
- cgblib 代理接口原理_一文搞懂Java中静态代理、动态代理以及CGLIB代理
- sql server哪个版本比较好用_给视频加音乐的软件哪个比较好用?
- mysql常见排错_mysql 一些排错技巧
- python 释放内存_python深入之python内存管理机制(重点)