实例变量

【宠粉通道】叫我讲解的一道前端JS面试题-灵魂三问:prototype?类的prototype是什么?对象的proto是什么

元气小坏坏 提交于 2019-12-26 02:07:02
作者 | Jeskson 来源 | 达达前端小酒馆 1 究竟是什么样的题目让我徒弟疑惑呢?让我们看看截图先,来源于wx群: 看看我是怎么回答的: function Foo() { getName = function () { alert (1); }; return this; } var getName; //只提升变量声明 function getName() { alert (5);} //提升函数声明,覆盖var的声明 Foo.getName = function () { alert (2);}; Foo.prototype.getName = function () { alert (3);}; getName = function () { alert (4);}; //最终的赋值再次覆盖function getName声明 getName(); //最终输出4 看懂没呢?没看懂也别急哈: 先让我们了解函数的定义: 函数声明,可以先调用再声明 dadaFn(); function dadaFn(){ console.log(dadaFn); } / 返回 f -> function function dadaFn() { console.log(dadaFn); } 函数表达式,先声明再调用: let daDafn = function() { console

Shell脚本之四 内建命令

匆匆过客 提交于 2019-12-25 18:12:52
所谓 Shell 内建命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件。 可以使用 type 来确定一个命令是否是内建命令: [root@localhost ~]# type cd cd is a Shell builtin [root@localhost ~]# type ifconfig ifconfig is /sbin/ifconfig 由此可见, cd 是一个 Shell 内建命令,而 ifconfig 是一个外部文件,它的位置是 /sbin/ifconfig 。 还记得系统变量 $PATH 吗? $PATH 变量包含的目录中几乎聚集了系统中绝大多数的可执行命令,它们都是外部命令。 通常来说,内建命令会比外部命令执行得更快,执行外部命令时不但会触发磁盘 I/O,还需要 fork 出一个单独的进程来执行,执行完成后再退出。而执行内建命令相当于调用当前 Shell 进程的一个函数。 接下来的几节我们将重点讲解几个常用的 Shell 内置命令。 一、Shell alias命令 使用 alias 命令自定义别名的语法格式为: alias new_name='command' 比如,一般的关机命令是 shutdown-h now ,写起来比较长,这时可以重新定义一个关机命令,以后就方便多了。 alias myShutdown='shutdown -h now

使用 CodeIgniter 框架快速开发 PHP 应用(七)

北城余情 提交于 2019-12-25 18:12:51
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> CodeIgniter 和对象 这是玩家章节。它讲述的是 CodeIgniter 的工作原理,也就是揭开CI头上'神秘的面纱'。如果你是 CI 的新手,你可能想要跳过它。不过, 迟早, 你可能想要了解CI的幕后在发生什么 ,为什么不真正的玩转它呢? 当我刚开始使用 CodeIgniter 的时候,对象使我迷惑。 我是在使用 PHP 4的时候接触CI的, PHP4并不是真正的面向对象的语言。我在一大堆对象和方法、属性和继承,还有封装等数据结构中转悠,总是被类似的出错信息包围 " 调用非对象的成员函数". 我如此频繁地看到它们,因此我想到要印一件T恤衫,上写: 神秘,无规律可循, 而我仿佛正穿着它站在一个现代艺术展会的会场上。 这一章的内容包含CI使用对象的方法, 和你OO编程的方法。 顺便说一下,术语 '变量/属性', '方法/函数'是等义的,当 CI 和 PHP 经常会混着使用它们。比如,你在你的控制器中写一个 '函数', 纯 OO 程序员会称他们是'方法'。你称之为类的变量而纯OO程序员会叫它们‘属性’。 面向对象编程 我正在假定你和我一样有 OOP 的基本知识, 但如果只是在PHP4中尝试过可能还不太够。 PHP 4 不是一种 OO 语言, 虽然具备了一些 OO 的特征。 PHP 5 会更好一些,

python基础(十一)面向对象和类

会有一股神秘感。 提交于 2019-12-24 10:42:18
面向对象 面向对象,简单来说用类对一切对象进行描述的一种编程思维和方法.在这里就不多做介绍(因为我也只是意会到一点点).根据面向对象的概念,我们需要注意的几个概念: 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法. 对象(Object):通过类定义的数据结构实例.对象包括两个数据成员(类变量和实例变量)和方法。 类变量:类变量在整个实例化的对象中是公用的,类变量定义在类中且在函数体之外,类变量通常不作为实例变量使用. 实例变量:定义在方法中的变量,只作用于当前实例. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法:类中定义的函数. 继承:即一个派生类(derived class)继承基类(base class)的字段和方法.也称为父类和子类 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写. 实例化:创建一个类的实例,类到具体对象的过程 属性: 不管是变量或者是方法,都称为属性.变量一般称为静态属性,方法称为动态属性 面向对象的三大特性 1, 封装: 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 2, 继承: 让不同类型的对象获得其它类型对象的属性和方法. 3, 多态: 实现接口重用, 即可以不同类型对象使用相同的方法

Java 封装与类

大憨熊 提交于 2019-12-24 04:01:56
  一、面向对象编程   面向对象编程三大特性:封装、继承和多态。   类是实现封装的手段,是面向对象编程的基本单元。   封装隐藏了类的内部实现细节,暴露给外界可控的操作,提高数据的完整性和安全性,提高模块的可重用性和开发效率,降低开发的复杂性。   从面向对象程序设计方法的角度看,程序中所有的东西都是对象,而程序是对象的组合,对象间通过消息传递实现协作。   二、类   类是Java程序设计的核心概念和基本单元。   类是对一类事物的特征的描述,是抽象后的描述;对象是一个实例。   1、Java没有全局变量,只有:   静态变量:隶属于类   实例变量:类体中定义,类的属性,隶属于对象。   局部变量:形参、方法内定义或代码块中定义,隶属于方法。      2、成员修饰符——public、private、protected、default   作用:实现访问权限控制。   public:被public修饰的成员,可以在任何一个类中被调用。   private:除了本类的方法能够调用私有成员(方法、属性),其他任何类都不能直接访问私有成员。   所有修饰符都能修饰数据成员、方法成员和构造方法;只有public和default能修饰类(外部类)。   3、方法重载   (1)方法名相同   (2)方法的参数签名不相同(参数类型、个数、顺序)。   (3)方法的返回类型可以不同

java中的实例成员与类成员

坚强是说给别人听的谎言 提交于 2019-12-23 16:18:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 首先, 类的目的是抽象出一类事物共有的属性和行为,并用一定的语法格式来描述所抽象出的属性和行为。也即是说,类是一种用于创建具体实例(对象)的数据类型。 类体中包括成员变量的声明和方法的定义,而成员变量又可细分为实例变量和类变量。在什么成员变量时,用关键字 static 给予修饰的称作类变量,否则称作实例变量,同样,方法类型前面不加关键字static修饰的方法是实例方法,否则则是类方法 , 例如: public class Demo{ int x; // 实例变量 static int y;//类变量 float max(float m , float n ){ //实例方法 .... } static float min(float m , float n ){ //类方法 .... } } 3. 明白实例变量和类变量的区别 1) 不同对象的实例变量互不相同: 一个类通过使用new运算符可以创建多个不同的对象,而这些对象将分配不同的成员变量,即分配给不同的对象的实例变量占有不同的内存空间。改变其中一个对象的实例变量不会影响其他的对象的变量。 2) 所有对象共享类变量 当类中存在类变量,当创建多个不同对象时,分配给这些对象的这个类变量占有相同的一处内存。改变其中一个会影响其他, 即说对象共享类变量。 3)

2.始化方法

被刻印的时光 ゝ 提交于 2019-12-22 08:16:53
继承:把公共的方法和实例变量写在父类里,子类只需要写自己独有的实例变量和方法即可。 Student类继承了Person类,将Person类中的所有实例变量和方法都继承过来了 @interface Student : Person 只要写自己独有的实例变量 @end 继承的特点: 1、没有父类的类称作 根类 ,OC中的根类是 NSObject 2、继承是单向的,不能互相继承 3、子类继承父类所有的实例变量和方法(父类中私有的实例变量也被继承,但不能被子类访问) 4、继承具有传递性 5、一个类只有一个父类,但可以有多个子类 继承的重写:(先找自己, 逐级向上查找,找到即执⾏。) 1、如果子类不满足父类的实现可将继承父类的方法重写。 2、声明父类继承的方法,是告诉外界,该方法是重写父类的方法 3、如果本类没有重写父类过来的study方法,则执行父类的study方法,反之,执行子类重写父类的study方法 4、方法的执行,优先从本类找方法的实现 继承 方法的实现: super:是编译器指令,并非对象 作用:给super发送消息,可以执行父类该方法的实现 [super init] 初始化方法: 1、初始化方法是对象方法即 - 方法 ,并且 以init开头 2、初始化方法的作用是为某些实例变量进行赋值 3、一个类的初始化方法可以有多个,但是一个对象的生命周期中,初始化方法只有一次 4、

Java函数式编程和lambda表达式

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-21 23:24:23
为什么要使用函数式编程 函数式编程更多时候是一种编程的思维方式,是种方法论。函数式与命令式编程的区别主要在于:函数式编程是告诉代码你要做什么,而命令式编程则是告诉代码要怎么做。说白了,函数式编程是基于某种语法或调用API去进行编程。例如,我们现在需要从一组数字中,找出最小的那个数字,若使用用命令式编程实现这个需求的话,那么所编写的代码如下: public static void main(String[] args) { int[] nums = new int[]{1, 2, 3, 4, 5, 6, 7, 8}; int min = Integer.MAX_VALUE; for (int num : nums) { if (num < min) { min = num; } } System.out.println(min); } 而使用函数式编程进行实现的话,所编写的代码如下: public static void main(String[] args) { int[] nums = new int[]{1, 2, 3, 4, 5, 6, 7, 8}; int min = IntStream.of(nums).min().getAsInt(); System.out.println(min); } 从以上的两个例子中,可以看出,命令式编程需要自己去实现具体的逻辑细节

原型类型、引用类型

☆樱花仙子☆ 提交于 2019-12-21 11:08:51
原始类型 原始类型的数据都是一些比较简单数据,比如字符串,数字等,比如:true和25,这些数据会被直接存储在变量的内存空间中。ECMAScript 5 给我们提供了5种原始类型: 类型 数据 说明 Boolean true、false 布尔值,true或false Number 12、12.5、NaN 整型、浮点型、特殊值NaN(Not a number) String 'hello'、"hello" 被单引号或双引号扩起来的字符或字符串 Null null 只有一个值null Undefined undefined 只有一个值undefined。任何只声明而没有赋值的变量都会被赋值为undefined。 变量在存储原始类型的数据时,直接将数据存储到变量的内存空间中。当我们将存储原始类型数据的变量赋值给另一个变量时,其实是将变量存储的值复制了一份保存到了另一个变量中。 正因为每一个变量都是使用自己独立的存储空间保存原始类型的数据,因此当我们改变一个变量中的数据时不会影响到另个变量中的数据。 检测原始类型的数据 检测原始类型的数据最好的方式是使用typeof操作符,该操作符会返回一个表示数据类型的字符串。 原始类型数据的方法 虽然字符串,数字,布尔值是原始数据类型,但是也有很多方法可以使用(null和undefined没有方法)。 引用类型 引用类型的数据稍微复杂一点

python面向对象相关

℡╲_俬逩灬. 提交于 2019-12-21 08:50:26
面向对象 class的定义 ''' 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 方法:类中定义的函数。 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 局部变量:定义在方法中的变量,只作用于当前实例的类。 实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。 实例化:创建一个类的实例,类的具体对象。 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。 ''' # 定义 class ClassName : < statement - 1 > . . . < statement - N >