构造函数

js 基础知识 点

為{幸葍}努か 提交于 2020-03-11 01:57:00
【作用域】 --当在函数中操作一个变量时,会先在自身作用域中查找,如果有就直接使用, 如果没有则向上一级作用域查找,知=直到找到全局作用域window.b= --在函数中不使用var 声明的变量则会设置为全局变量, --定义形参就相当于在函数中声明了一个变量 【构造函数】: --构造函数和普通函数的区别是调用方式的不同,普通直接调用,构造通过new关键字调用 --【构造函数的执行流程】, 1,创建一个新对象, 2,将新建的对象设置为函数中的this 3,逐步执行函数中的代码 4,将新建的对象作为返回值返回 --【原型】: 1,每一个构造函数都有一个prototype原型,是一个指针,指向一个对象,对象里 保存了实例共享的属性和方法,原型是给实例提供属性和方法的,每一个实例都有 一个指向原型的指针_proty_;当我们访问实例的一个属性互或方法时,会先在 对象自身查找,如果有则直接使用,如果没有,会去原型对象中寻找,找到则直接使用 【检查对象是否包含某属性】: -可以使用对象的hasOwnProperty() 来检查对象自身中是否有该属性 --object.hasOwnProperty(''name') 如果有该属性则返回true 【随机数】: ---Math.random()可以生成0-1之间的随机数, -》生成0-10之间的随机数Math.round(Math.random()

ES5有几种方式可以实现继承?分别有哪些优缺点?

不想你离开。 提交于 2020-03-10 19:40:04
最近公司在招外面包,面试也是一项体力活,得所有的问题梳理一遍。你得理解更深入,希望能和被面试者一起探讨问题,通过面试能学到一些知识,疫情时期,招人不易,找工作也不容易呀!也是查了很多资料,若有整理不对之处欢迎纠正!ES5有几种方式可以实现继承?分别有哪些优缺点?1. 原型链继承 原型链继承的基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。 原型链继承 function People() { this.name = 'sophia'; this.hobbies=['swimming', 'skiing'] } People.prototype.getName = function () { return this.name; }; function Man() { this.sex = 'male' } Man.prototype = new People(); Man.prototype.getSex = function(){ return this.sex } Man.prototype.constructor = Man; let person1 = new Man(); person1.hobbies.push('basketball') console.log(1101, person1) console.log(11, person1.getName()

Serializable在C#中的作用.NET中的对象序列化

我与影子孤独终老i 提交于 2020-03-10 18:17:26
简介 序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。 在面向对象的环境中实现序列化机制时,必须在易用性和灵活性之间进行一些权衡。只要您对此过程有足够的控制能力,就可以使该过程在很大程度上自动进行。例如,简单的二进制序列化不能满足需要,或者,由于特定原因需要确定类中那些字段需要序列化。以下各部分将探讨 .NET 框架提供的可靠的序列化机制,并着重介绍使您可以根据需要自定义序列化过程的一些重要功能。 持久存储 我们经常需要将对象的字段值保存到磁盘中,并在以后检索此数据。尽管不使用序列化也能完成这项工作,但这种方法通常很繁琐而且容易出错,并且在需要跟踪对象的层次结构时,会变得越来越复杂。可以想象一下编写包含大量对象的大型业务应用程序的情形,程序员不得不为每一个对象编写代码,以便将字段和属性保存至磁盘以及从磁盘还原这些字段和属性。序列化提供了轻松实现这个目标的快捷方法。 公共语言运行时( CLR )管理对象在内存中的分布, .NET 框架则通过使用反射提供自动的序列化机制。对象序列化后,类的名称、程序集以及类实例的所有数据成员均被写入存储媒体中。对象通常用成员变量来存储对其他实例的引用。类序列化后

JavaScript重点知识

只愿长相守 提交于 2020-03-10 17:05:42
1.JavaScript由三部分组成: ECMAScript :提供核心语言功能 文本对象模型(DOM) :提供访问和操作网页内容的方法和接口 浏览器对象模型(BOM) :提供与浏览器交互的方法和接口 2.自定义构造函数创建对象 //自定义构造函数创建对象 //函数与构造函数的区别在于名字(首字母)是不是大写 function Person(name, age) { this.name = name; this.age = age; this.sayHi = function () { console.log("我叫" + this.name + ",年龄是:" + this.age); } } var obj1 = new Person("小明", 10); console.log(obj1.name); console.log(obj1.age); obj1.sayHi(); var obj2 = new Person("小芳", 18); console.log(obj2.name); console.log(obj2.age); obj2.sayHi(); console.log(obj1 instanceof Person); //true console.log(obj2 instanceof Person); //true //自定义狗的构造函数 function

C++底层接口Thread类详细使用方法

泪湿孤枕 提交于 2020-03-10 16:32:27
头文件 <thread> 创建 thread 对象 thread 有三个构造函数,分别是默认构造函数,复制构造函数,和带参数的构造函数. 创建和使用一个thread实例类似如下: void print ( ) { cout << "新线程启动" << endl ; cout << "新线程结束" << endl ; } int main ( ) { thread t ( print ) ; t . join ( ) ; cout << "主线程结束\n" ; cout << endl ; } 其中第一个参数是可调用对象(函数、成员函数、函数对象、lambda) 当创建出一个thread对象时,C++就自动将它尽可能启动于一个新线程,如果没有成功,则抛出异常 std::system_error . 成员函数 join() 的使用方法 join 中文直译意思是加入、结合、连接. 顾名思义,使用这个成员函数,子线程会和主线程汇合, 也就是说主线程会等待子线程结束,在子线程结束之前,主线程不会结束. 使用 Join ,我们可以确保子线程能够完全的运行,如果主线程走的快,主线程就会等待子线程的完毕,最后主线程和子线程都能运行完毕. 成员函数 detach() 的使用方法 detach 中文直译意思是分离、分开. 顾名思义,我们各走各的,你走你的,我走我的。 也就是说主线程不会等待子线程

Spring创建Bean的方式

笑着哭i 提交于 2020-03-10 13:15:02
第一种方式:使用默认构造函数创建   在Spring的配置文件中使用Bean标签,配以ID和Class属性之后。且没有其他属性的标签时。  采用的就是默认构造函数创建Bean对象,此时如果类中没有默认构造函数,则对象无法创建。 第二种方式:使用普通工厂创建对象 1 <bean id="instanceFactory" class="factory.InstanceFactory"></bean> 2 <bean id="accountService" factory-bean="instanceFactory" factory-method="getAccountServive"></bean> 第三种方式:使用工厂中的静态方法创建对象并存入容器 <bean id="accountService" class="actory.StaticFactory" factory-method="getAccountService"></bean> 来源: https://www.cnblogs.com/SanChauncy/p/12454835.html

php面向对象和构造函数

拜拜、爱过 提交于 2020-03-10 12:03:01
面向对象分为类和对象:     类:由众多对象抽象出来的东西;     对象:一切皆对象,由类实例化出来的;   类的定义: class Ren{ var $code; //成员变量 var $name; //姓名 var $sex; //性别 var $birthday; //生日 public function say(){ echo "{$this->name}说话!"; } }    其中类名的首字母大写,$this写在类里面代表该对象(谁调用代表谁);   实例化对象(object代表对象): $r = new Ren(); $r->name = "张三"; $r->code = "p001"; $r->say();    类里面所有的变量或函数都称作类的成员;   访问修饰符:     public:公有的,任何地方都可以使用(类里类外都可用);     protected:受保护的,在外界访问不到,能在该类和子类中访问到;     private:私有的,只能在该类访问;     (之前定义用的var可变为访问修饰符);     类里面的成员是属于对象的;   面向对象和面向过程的区别:     1.面向过程较为方便;     2.面向对象结构更清晰;     3.面向对象后期改动过更方便。 面向过程做法:   $r1 = 10; $r2 = 5; $mj = 3

实现Promise

好久不见. 提交于 2020-03-10 10:47:25
实现Promise 1.最近写代码的时候使用到很多promise,于是好奇promise 内部是怎么实现的,是怎么运转的。所以决定自己参考源码理解来实现一下。 从使用方法 new Promise(function(resolve,reject){…}); 可以知道Promise 构造函数接收一个函数作为参数,并且构造函数内部会有resolve,与reject 方法 作为参数。 class MyPromise { constructor ( fn ) { if ( typeof fn !== 'function' ) { throw new Error ( 'Promise resolver undefined is not a function' ) ; } fn ( this . resolve . bind ( this ) , this . reject . bind ( this ) ) ; } resolve ( status ) { } reject ( status ) { } } 从promise的特性可以知道 promise 有3个状态 执行成功 => fulfilled,执行失败 => rejected, 执行中 => pending. 所以我们还需要定义一个 promise状态属性。同时需要一个promise的value值。 我们new 一个 promise

构造函数

旧时模样 提交于 2020-03-10 09:51:43
构造函数的一些知识点 1.在Java中,下列对于构造函数的描述正确的是? A.类必须显示已定义构造函数. B.构造函数的返回值是void. C.构造函数和类具有相同的名称,并且不能带任何参数. D.一个类可以定义多个构造函数. 答案:D 解析:A: 无参构造函数可以不显示。 B: 构造函数没有任何返回值类型,即使是void类型也没有。 C: 有参构造函数可以携带参数。 构造函数在创建类对象的时候被自动调用 Java中的所有异常都继承自Throwable Throwable:被用来表示任何可以作为异常被抛出的类。有两个重要的子类Exception和Error。二者都是Java异常处理的重要子类,并且二者也包含许多重要的子类。 Error:该类层次结构描述了Java运行时系统内部错误和资源耗尽错误,总之是与Java虚拟机有关的运行错误。也是应用程序无法处理的。这些错误是不可查的,因为它们在应用程序的控制和处理能力之 外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在 Java中,错误通过Error的子类描述。一般不需要你关心。 Exception: 是程序本身可以处理的异常,是需要程序员关心的异常类。 Java中的异常又可分为可检查异常(checked exceptions)和不可检查异常

new/delete和malloc/free

北城余情 提交于 2020-03-10 08:56:11
首先我们来谈谈malloc与free malloc和free是C函数库提供的两个函数,malloc从堆上(也叫自由存储区)分配一块合适的内存,程序返回一个指向这块内存的地址。free函数把它归还给内存池供以后使用。 注意的是这块内存并没有以任何形式进行初始化,如果进行初始化:要么自己动手进行初始化,要么使用calloc函数。 两个函数原型: void *malloc(size_t size); void free(void *pointer); malloc的参数就是需要分配的内存字节数(注意malloc不能自动计算字节大小,必须直接传字节数),如果内存池的内存满足这个需求,malloc就会返回一个指向被分配的内存块起始位置的指针;如果内存池为空或者不能满足你的分配需求,malloc将返回一个NULL指针( 这点很重要,每个从malloc分配的内存返回的指针用的时候都要检查是否为NULL )。 free函数的参数要么是NULL(不会产生任何效果),要么就是就是先前从malloc返回的值。只有这两种。释放一块内存的一部分是不允许的,动态分配的内存必须整块一起释放,但是有realloc的特性(缩小一块动态分配的内存),可以有效的释放他尾部的部分内存 注意观察的人会发现malloc返回的是一个 void*,那我们在内存上存储整数,浮点数和其他类型的时候该怎么办?