copy : 相当于只是拷贝表面一层,如果里面还有深层次的引用,那么也是直接拷贝引用的地址,而且如果拷贝对象是不可变类型比如元组,那么也是直接拷贝引用. deepcopy: 无论是拷贝可变类型还是不可变类型,无论是里面嵌套了多深层次的引用关系,统统复制一份,在新的空间中存储起来. 之前在廖雪峰老师的网站上看到一个练习题,输出杨辉三角,一位同学这么写的: import copy def triangles(): L = [] while True: yield L #L = L.copy() L.…
1.对象 在javascript里,一切都是对象,包括函数自身(不是指具体的函数,而是指"Function"这个东东).例如: var fun1=new Function("num1","num2","alert(num1+num2)"); 这时,fun1是一个函数的"实例",或者说函数对象,所以当然是一个对象.fun1.__proto__指向Function.prototype.但同时,Function也…
JavaScript对象 在 JavaScript中,几乎所有的事物都是对象.JavaScript 对象是拥有属性和方法的数据. var car = {type:"Fiat", model:500, color:"white"}; 可以说 "JavaScript 对象是变量的容器".但是,我们通常认为 "JavaScript 对象是键值对的容器". 键值对通常写法为 name : value (键与值以冒号分割).键值对在 J…
1.word按住ALT可以选择整列文字 2.虚函数优点:http://blog.163.com/jianhuali0118@126/blog/static/37749970200836104340917/ 虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数. 根据同一个指针指向的对象(父类对象还是子类对象)来决定调用的函数,这就是多态(必须是同一指针). 可以让成员函数操作一般化(用基类的指针指向不同的派生类的对象时,基类指针调用其虚成…
1.用函数构造 A.声明时同时设置属性和方法 function func(){  this.name = "myname";  this.say = function(){alert("i said:")} } 引用时: var obj = new func(); alert(obj.name); obj.say(); B.先声明后使用: function func(){ } var obj = new func(); obj.name = "myname…
对象参考手册 Array Boolean Date Math Number String RegExp Global 前言 在js中什么都是对象(包括函数). 函数是用来实现具体功能的代码,用一种方式把他们组织起来,就是函数. 对象是有属性和方法的一个东西,在对象中的函数就变成了方法. this 在方法中,this 指的是所有者对象 单独的情况下,this 指的是全局对象:在浏览器窗口中,全局对象是 [object Window] 在函数中,this 指的是全局对象:function myFun…
/** * Created by chet on 15/12/17. */ var En= function (button,func) { //dosth,不能return alert(button+"kd"+func); }; En.aaa= function () { alert('kkkk'); }; En.prototype.outer= function () { alert('我的alert'); }; /*********************************…
一.对象 使用一种抽象的概念去描述,人{属性,方法} var car={type:"BYD",model:500,color:white,do:function(){"可以跑"}} 针对对象属性的使用: name=car.type; color=car["color"] 针对对象方法的使用: deal=car.do()二.函数的定义和使用 1.无参函数 function fun(){ 语句体: } 2.有参函数 function fun(a,b)…
1.javascript 对象和函数的引用 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>javascript 对象和函数的引用.浅拷贝.深拷贝.递归</title> <script type="text/javascript"> //对象和函数都是对象引用的关系,a和b…
本节介绍js的9个对象:Array数组对象 Boolean(true false) Date日前对象 Math 数学对象 Number 数字对象 String 字符串对象 RegExp 正则表达式对象 Function函数对象 Events 事件对象 Array数组对象 创建Array对象 new Array() //length字段为0,数组为空 new Array(size) //创建指定长度对象 ,数组元素为undefined new Array(e1,e2,-)//创建具有指定值得数组…
1.Math函数与属性使用语法 Math.方法名(参数1,参数2,...); Math.属性; 说明 Math函数可以没有参数,比如Math.random()函数,或有多个参数,比如Math.max()函数 Math的相关函数全部为静态函数,应该直接调用. JavaScript中Math函数和属性非常多,下面按功能分类分别列出常用的几种 Math三角函数与属性 Math.sin() -- 返回数字的正弦值 Math.cos() -- 返回数字的余弦值 Math.tan() -- 返回数字的正切值…
获取当前日期输入当年第几天 //输入,年月日,获取这个日期是这一年的第几天 //年-月--日:20171月31日 function getDay(year,month,day){ //定义变量存储对应的天数 var days=day //如果用户输入的是一月份,没有必要向后算天数,直接返回天数 if(month==1){ return days; } //代码执行到这里--用户输入的不是1月份 //比如输入的是4月份23日---1,2,3,+23 //定义一个数组,存储每个月的天数 var mo…
经常看到讨论c#深拷贝,浅拷贝的博客,最近js写的比较多, 所以也来玩玩js的对象拷贝. 下面是维基百科对深浅拷贝的解释: 浅拷贝 One method of copying an object is the shallow copy. In the process of shallow copying A, B will copy all of A's field values. If the field value is a memory address it copies the memo…
javascript对象深拷贝,浅拷贝 ,支持数组 经常看到讨论c#深拷贝,浅拷贝的博客,最近js写的比较多, 所以也来玩玩js的对象拷贝. 下面是维基百科对深浅拷贝的解释: 浅拷贝 One method of copying an object is the shallow copy. In the process of shallow copying A, B will copy all of A's field values. If the field value is a memory…
一.函数声明和表达式 函数声明: function test() {}; test();    //运行正常 function test() {}; 函数表达式: var test = function() {}; test;    //undefined test();   //TypeError var test = function() {}; 命名函数的赋值表达式: var test = function bar() { test();    //正常运行 }; test();    /…
javascript的深拷贝和浅拷贝问题几乎是面试必问的问题.好记性不如烂笔头,特此来记录一下自己对深拷贝浅拷贝的理解. 顾名思义,拷贝就是copy复制,在js中可以浅而理解为对一个对象或者数组的复制.但是复制后的对象或者数组是否是和原来的对象指向同一个地址内存还是新开辟了一个地址内存,这就衍生出了javascript的深拷贝和浅拷贝的问题了:深复制和浅复制只针对像 Object, Array 这样的复杂对象的.简单来说,浅复制只复制一层对象的属性,而深复制则递归复制了所有层级. 一.javas…
一.浅拷贝 浅拷贝在现实中最常见的表现在赋值上面,例如 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>测试</title> </head> <body> <script type="text/javascript"> //第一个数组 var tes…
遇到一个需要向匿名函数传递循环控制变量的问题,我受到园子里这篇文章的启发[笔记]js获取当前点击元素的索引,解决了这个问题.现在把代码贴出来,以防止自己忘记. if ($('#labModal').length > 0) { var screenWidth = window.screen.width; var equipList = document.getElementsByClassName('equip-item'); for (i = 0; i < equipList.length;…
精简的美丽...... javascript prototype 对象 函数 在javascript中我们都知道创建一个对象使用如下代码var x = {}对象可以拥有属性和方法var x = {    value : 0,    add : function(a,b){        return a + b;    }} 而创建一个函数时,使用var fx = function(){}    <func1>或function fx(){}            <func2>…
一.属性的归属问题 JS对象中定义的属性和方法如果不是挂在原型链上的方法和属性(直接通过如类似x的方式进行定义)都只是在该对象上,对原型链上的没有影响.对于所有实例共用的方法可直接定义在原型链上这样实例化的的时候就不用对每个实例定义该属性方法,所有的实例均具有该方的引用见最后的输出. function Myclass(){ this.x=" x in Myclass"; this.get=function(){}//每次实例化对象,每个对象的该方法都是独立的,是不相同的 } Mycla…
基本类型和引用类型的值 ECMAScript 变量可能包含两种不同的数据类型的值:基本类型值和引用类型值. 基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置. 而引用类型值则是指那些保存在堆内存中的对象,意思是变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象. 将一个值赋给变量时,解析器必须确定这个值是基本类型值,还是引用类型值. 基本类型值: 有以下几种:Undefined.Null.Boolean.Number 和 String…
本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘. 概述 使用对象字面量,或者向空对象中动态地添加新成员,是最简单易用的对象创建方法. 然而,除了这两种常用的对象创建方式,JavaScript还提供了其他方法创建对象. 1).使用工厂函数创建对象 我们可以编写一个函数,此函数的功能就是创建对象,可将其称为“对象工厂方法”. //工厂函数 function createPerson(name, age, job) { var o = new Object(); o.name = name;…
最近Vue项目中写到一个业务,就是需要把对话框的表单中的数据,每次点击提交之后,就存进一个el-table表格中,待多次需要的表单数据都提交进表格之后,再将这个表格提交,实现多个表单数据的同时提交,期间还可以用表格进行预览.修改等其他操作.将每个表单数据存进表格的代码大致代码如下: let object=this.ruleForm; this.tableData.push(object); 其中,对话框中的表单使用了el-form,this.ruleForm是vue实例中的一个对象,而this.…
一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div,for循环绑定事件. 示例代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>闭包</title> <style type="…
函数对象和其他内部对象的关系 除了函数对象,还有很多内部对象,比如:Object.Array.Date.RegExp.Math.Error.这些名称实际上表示一个 类型,可以通过new操作符返回一个对象.然而函数对象和其他对象不同,当用typeof得到一个函数对象的类型时,它仍然会返回字符串 “function”,而typeof一个数组对象或其他的对象时,它会返回字符串“object”.下面的代码示例了typeof不同类型的情况: 以下是引用片段: alert(typeof(Function))…
本身这句话很好解释,函数有两个主要特点,援引自 陈新 译的<JavaScript模式>: 1.函数是第一类对象: 函数可以在运行时动态创建,还可以在程序执行过程中创建. 函数可以分配变量,可以将它们的引用复制到其他变量,可以被扩展,此外,除少数特殊情况外,函数还可以被删除. 可以作为参数传递给其他函数,并且还可以有其他函数返回. 函数可以有自己的属性和方法. 2.函数提供了作用域 在JavaScript中,没有使用花括号{}语法来定义局部变量的作用域,也就是说,块并不能创建作用域.这也就意味着…
我们可以通过构造器函数(简称构造函数)来创建对象: function Her(){ this.child = 'Jon'; } 为了使用该函数来创建对象,我们需要使用new操作符,例如: var she = new Hew(); she.child; // Jon 使用构造函数创建对象的好处就是她可以接受一些参数,下面我们就来修改一下上面的例子: function Her(name){ this.name = name; this.child = 'Jon; this.whoAreYou = f…
JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念. 例子: <html> <head> <script type="text/javascript"> function add(number) { alert(number + 20); } function add(number, number1)…
在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等.     一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascript中,已经存在一些标准的类,例如Date.Array.RegExp.String.Math.Number等等,这为我们编程提供…
javascript函数的参数包含另一个函数的情形: <script> //b函数的参数func为另一个函数 function b(a, func) {  alert(a); //调用参数的函数  func();} function a() { alert("函数a");} //将函数a传递给b函数的第二个参数b(1,a);</script> 运行结果: 第一次弹出窗口:1 第二次弹出窗口:函数a 结论:在javascript中,函数的参数可以为另一个函数的引用…