对象小结

对象

1、对象:无需属性的集合,属性可包含基本值、对象或者函数

创建对象 var obj = new Object() ;

2、工厂模式:创建一种函数模型(反正不好用);

ps:他跟构造函数的区别:

1.首字母小写

2.函数中没有使用this

3.使用的时候没有用new

3、构造函数模式:也是一种函数模型。

创建对象时要用new。

基本写法:function Student(name) {

this.name = name;

this.playComputerGame = function() {

};
this.sleepy = function() {

console.info(this.name);
};
}

缺点:每次调用的时候都会重新创建一遍方法,会导致通方法不同的作用链和方法解析,占内存。

优化一下:把方法定义到构造函数外面。

function Student(name) {

this.name = name;

this.sleepy = sleepy()
}

function sleepy() {

console.info(this.name);
};

4、原型模式:prototype是构造函数对象的属性,它指向了一个对象(就是一个引用),它指向的这个对象中的所有的属性跟方法,是每个实例所公用。

写法:function Person() {

}

Person.prototype.name = "小二狗"; --------->添加原型属性

var p1 = new Person();

console.info(p1.name); --------> 实例调用

5、原型链:找东西,一层一层往上扒。

6、构造原型方式:创建类

1.属性全部放在构造函数里面

2.方法写在外面(prototype)

7、原型链继承:New.prototype = new Old(); 新的函数继承旧的函数原型类型。

8、借用构造函数和组合继承都是套路(组合继承时注意新的方法必须写在继承之后)。

时间: 2024-10-24 08:46:57

对象小结的相关文章

Android Intent传递对象小结

效果: 想看实例的,感兴趣的可以看之前的一篇文章 Android ViewPager Fragment实现选项卡 部分关键代码: public class SerializeActivity extends Activity implements Serializable { Button btnlist, btnParcelable, btnSerialze; private final String TAG = "SerializeActivity"; public final s

Python--面向对象小结

小结主要讲述面向对象的优点,可扩展性高 示例代码如下: 1 class Chinese: 2 def __init__(self,name,age,sex): 3 self.name=name 4 self.age=age 5 self.sex=sex 6 7 8 p1 = Chinese('egon',18,'male') 9 p2 = Chinese('alex',38,'female') 10 p3 = Chinese('wpq',48,'female') 我们往类中插入一个数据属性,只需

JavaScript服务器端开发基础之Math对象小结

JavaScript提供基础的算术运算符来实现对算术运算的支持,例如加法运算符+,减法运算符-,乘法运算符*,除法运算符/和求余运算符%.此外,还支持复杂的算术运算,这是通过作为Math对象的属性定义的函数和常量来实现的. 使用 Math 的属性和方法的语法如下所示: var pi_value=Math.PI; var sqrt_value=Math.sqrt(15); 注释:Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin(

Python快速学习10: 循环的对象及设计 (生活的规律)

前言 系列文章:[传送门] 生活逐渐规律,按时睡觉.今天写博客,明天补时间看会书.慢慢的时间很珍惜 我很喜欢! 时钟就像个循环体,我们将它融入生活. 正文 循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式. 灵活的循环方式 (我晚饭后爱上了萨克斯,因为这是生活的一部分.属于我的特殊循环对象,它的按键就像循环方式,然后出来一首美丽的歌曲) 我的萨克斯偶像 循环对象 循环对象是这样一个对象,它包含有一个next()方法(_

ORACLE 博客文章目录(2015

从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理.归纳分类,方便自己和大家查看.翻阅.  ORACLE数据类型 ORACLE基本数据类型总结 ORACLE VARCHAR2最大长度问题 ORACLE数据库汉字占几个字节问题 ORACLE NUMBER类型Scale为0引发的问题 PL/SQL语法学习 PLSQL 调试触发器 PL/SQL重新编译包

[2016-05-13][C++若干问题]

有错请指出,有错请指出,有错请指出,有错请指出,有错请指出,有错请指出, 下面的结论都是在VS下测试的,也许其他编译器会出现不同情况, 比如下面这句,在VS下不能编译,但是在其他编译器能编译(华工OJ支持这种写法) int n = 5; int a[n]; 1. 关于复制构造函数的某个特殊情况, A g(){ return A();} A c = g(); 这种情况,复制构造函数只调用了一次,实际上并没有创建匿名对象,匿名对象直接变成了声明的c, A c; c = g(); 如果是普通的赋值语句

转载c++常忘的知识点

C++的一些知识点比较零碎,下面清单的形式做一些记录与归纳,以供参考. 1.赋值操作符重载(深复制): (1)由于目标对象可能引用了以前的一些数据,所以应该先delete这些数据: (2)注意到对象可能对自己赋值,所以应该加上下面语句(another表示另一个对象),再进行(1)的操作: (3)函数返回一个指向调用对象的引用: (4)赋值操作符只能通过成员函数重载. 2.静态类成员函数: (1)静态类成员函数在类的声明中要加static关键字,而在定义中则不用: (2)静态类成员函数没用this

消息通信机制NSNotificationCenter -备

消息通信机制NSNotificationCenter的学习.最近写程序需要用到这类,研究了下,现把成果和 NSNotificationCenter是专门供程序中不同类间的消息通信而设置的,使用起来极为方便, 长话短说. 设置通知,就是说要在什么地方(哪个类)接受通知,一般在初始化中做. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test:) name:@"test" object:

List 与iteraor区别

首先看两个例子来比较一下 (1)在用Query方法查询的时候,通过HQL语句来得到Query对象,并对Query对象进行操作,首先是用list方法获取到Query的List集合并输出 public void listQuery() { Configuration configuration = new Configuration().configure(); SessionFactory factory = configuration.buildSessionFactory(); Session