Js拾忆
instanceof运算符:他是判断一个构造函数的prototype是否在对象的原型链上查找到
var a = new Array(); console.log(a instanceof Array) //true
//a.__proto__ == Array.prototype //如果a不是对象将返回false
//如果右边不是构造函数将报错
箭头函数注意点,当箭头函数返回一个对象的话,要使用大括号把对象括起来,要不然会被认为是一个函数体
var fn = () => ({a:10});
Object.assign(target,obj1,obj2...):合并对象,将源对象的所有可枚举属性复制到目标对象,属于浅拷贝
fn1();//fn1
fn2();//报错,因为js代码执行过程会先函数声明预解析 //1.函数声明
function fn1(){
console.log('fn1');
} //2.函数表达式
var fn2 = function(){
console.log('fn2');
} //3.new Function();这个方式创建函数会先解析字符串为js的代码,执行速度慢,也是函数对象
var fn3 = new Function('var name = "小明";console.log(name);');
fn3(); //小明
//------------------------------------------ if(true){
function fn1(){
console.log('fn1');
}
}else{
function fn1(){
console.log('fn2');
}
}
fn1();//fn1,在现代浏览器里if语句里的函数声明不会预解析,老版本IE会解析 /*调用函数的方式
1、普通函数调用 this指向window
2、对象里的方法调用 this指向调用改方法的对象
3、作为构造函数调用 this指向由该构造函数创建的对象
4、作为事件的处理函数 this触发该事件的对象
5、作为定时器的参数 this指向window
*/
//浅拷贝,把一个对象复制给另外一个对象的时候,只能复制基本类型数据,如果这个对象还有引用类型的时候就不会复制该对象里面里面的成员
obj1 = {
name : '小明',
age : 16
}
obj2 = {};
for(var attr in obj1){
obj2[attr] = obj1[attr];
}
//深拷贝
function deepCoop(obj1,obj2){
var obj2 = obj2 || {};
for(var attr in obj1){
if(typeof obj1[attr] == 'object'){
obj2[attr] = (obj1[attr].constructor === Array) ? [] : {};
deepCoop(obj1[attr],obj2[attr])
}else{
obj2[attr] = obj1[attr];
}
}
return obj2;
}
Js拾忆的更多相关文章
- .Net拾忆:从List去除重复-拾忆集合
方法1: private static List<int> DistinctList(List<int> list) {//去除重复 HashSet<int> ha ...
- jquery实现的网页选项卡(拾忆)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 小知识,大智慧(restframework 拾忆)
一.直接对query_set序列化,在页面展示的效果是Unicode 编码格式 ,可在json 序列化时候加入一个参数 course_query = DegreeCourse.objects.all( ...
- Libero 使用拾忆
使用Libero软件进行管脚分配的时候可以使用脚本语言,详细的使用说明见des_constraints_ug.pdf(在Libero安装目录下寻找) 如: set_io srame_oe -REGIS ...
- Python拾忆--多线程的socket服务器
阳光明媚的午后,想想最近要开始从写Java到写Python了,就随手打开电脑来体验一下Python与Java之间的不同吧~ 记得我还在上大二的时候,那个时候才开始学Java,最感兴趣的就是Java书最 ...
- SQL SERVER 高级编程 - 自定义函数 拾忆
每个人都很忙,但是花10分钟复习下,总结下基础东西还是很有益处的. 背景: 总结一句,使用简便,还能递归,是的SQL更简洁,相对比一大堆的关联语句,而且关联一大堆还不一定实现特定功能.而且共用部分可以 ...
- spring mvc DispatcherServlet详解之拾忆工具类utils
DispatcherServlet的静态初始化 /** * Name of the class path resource (relative to the DispatcherServlet cla ...
- #ifdef,#else,#endif,#if 拾忆
预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作.说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译.这样做的好处是,经过处理后的代码,将会变的很精短. ...
- .NET拾忆:反射的本质——元数据
反射主要使用的命名空间: System.Reflection System.Type System.Reflection.Assembly 本质:元数据 反射的本质其实是使用元数据:元数据其实就是程序 ...
随机推荐
- python迭代-如何对迭代器做切片操作
如何对迭代器做切片操作 问题举例 读取某个文件内容的100~300行内容,我们是否可以使用 类似列表切片的方式得到一个100~300行文件内容的生成器 分析 列表的切片操作其实是在重载方法__getI ...
- FB面经 Prepare: Even Tree
You are given a tree (a simple connected graph with no cycles). The tree has nodes numbered from to ...
- java实现栈的简单操作
public class stract { public static void main(String[] args) { MyStack stack = new MyStack(20); stac ...
- C#、winform、wpf将类控件放进工具箱里
有时我们需要将vs自带的控件的某一些方法或属性进行一些修改,我们通常会新建一个类来继承它然后对它的方法或属性进行修改,那么我们如何将修改完成的控件类变成可视化控件放到工具箱中便于使用呢? 很简单,只要 ...
- windows server 2008 R2服务器无法通过ShellClass获取mp3音乐时长
我们先看一段代码,获取mp3播放时长: #region GetMediaDetailInfo 获取媒体文件属性信息 /// <summary> /// 获取媒体文件属性信息 /// < ...
- 小程序使用npm
1.cmd进入小程序的目录,cd C:\Users\lenovo\WeChatProjects\SITfu 2.npm install 3.npm init 4.npm install minipro ...
- CSS其它特性
文本内容左右对齐及盒子自身左右对齐 说白了,浮动就是可以让我们的div在一行中显示,方便布局,并且各个div之间没有空隙,如果使用display:inline-block也能在一行显示几个div,但是 ...
- liunx驱动----构造和运行模块
以hello world模块为例 #include <linux/init.h> #include <linux/module.h> //在执行 insmod hlello 的 ...
- zigbee端口的理解
在一个终端上,可以有多个端点endpoint,这个概念是很重要的. 一个节点可以有多个端点,0号endpoint是Zigbee device object(ZDO)用的一个端点,255号是用作广播.我 ...
- QSettings 类
一 .QSettings介绍: 用户通常希望应用程序记住其设置.在windows中,这些设置保存在注册表中,ios在属性文件列表中,而unix,在缺乏标准的情况下,其存储在ini文本中.QSettin ...