1 初识面向对象(面向对象是一种思维方式

以前写的代码

 var name = '莉莉';
var sex = '女';
var age = 18;
var name1 = '小明';
var sex1 = '男';
var age1 = 19;

面向对象的代码:

 var lili = {
name: 'lili',
sex: 'nv',
age: 18
}
var xiaoming = {
name: 'xiaoming',
sex: 'nan',
age: 19
}

2 简单工厂

简单工厂:people函数可以产生对象,根据传入的参数不同产生的对象也不同

参数===原料, 对象===产品

 function people(name, sex, age) {
// 声明一个空对象
var obj = {};
// 给属性赋值
obj.name = name;
obj.sex = sex;
obj.age = age;
// 添加方法
obj.show = function() {
console.log("我叫" + this.name + ', 我今年' + this.age + '岁,我是一个' + this.sex + '生!');
}
// 返回对象
return obj;
}

简单工厂的缺陷:通过工厂产生的对象,没有办法区分种类

3 构造函数

1、构造函数首字母大写,但这不是语法要求,作为书写习惯

2、构造函数使用new 关键字调用

new操作的过程

1、在内存中申请了一块空间

2、改变this指向(this默认指向window对象,this指向要生成的对象)

3、为this赋值

4、返回this指向的对象

return对构造函数的影响(结论:非引用的返回值没有影响,引用类型的返回值会取代this所指向的对象)

说法:(实例、类、实例化)

将产生的对象称之为实例(实例化对象)

将new过程称之为实例化

 将构造函数称之为类

     <script>
function People(name, sex, age) {
// 给属性赋值
this.name = name;
this.sex = sex;
this.age = age;
// 添加方法
this.show = function() {
console.log("我叫" + this.name + ', 我今年' + this.age + '岁,我是一个' + this.sex + '生!');
}
}
var xiaoming = new People('小明', '男', 18);
</script>

5 备份this(当指定对象不是this的指定对象 就会默认window对象为指定对象 这时就得备份);

 <script>
var obj = {
name1: 'aaa',
demo: function() {
console.log(this.name1);
},
test: function() {
// 备份this
var me = this;
(function() {
// 此处this不会指向obj对象,指向的是window对象
// console.log(this.name1);
console.log(me.name1);
})();
}
}
obj.demo();
// window.name1 = 333;
obj.test();
</script>

最新文章

  1. MS10-087微软OFFICE漏洞【参考拿机模拟】
  2. salesforce 零基础学习(四十六)动态美观显示列表中记录的审批状态
  3. 接入WebSocket记录
  4. 小谈 checkbox 的选中
  5. Mysql使用workbench迁移数据
  6. BZOJ2095 [Poi2010]Bridges
  7. HDU 5832 A water problem (带坑水题)
  8. Java多线程——其他工具类CyclicBarrier、CountDownLatch和Exchange
  9. LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)
  10. mybatis系列笔记(2)---mapper代理方法
  11. Object-C知识点
  12. 【CSS】伪类和伪元素选择器
  13. java输出日志
  14. Device Tree Usage(理解DTS文件语法)
  15. 20165306 Exp2 后门原理与实践
  16. Java程序心得体会
  17. struts2各个功能详解(1)----参数自动封装和类型自动转换
  18. python网络聊天器多线程版
  19. 在ado.net中实现oracle存储过程调用两种方式
  20. Qt中printsupport的注意点和使用方法

热门文章

  1. Oracle生成ASH报告
  2. Burp suite抓取HTTPS请求
  3. 聊一聊几种常用web图片格式:gif、jpg、png、webp
  4. html初体验#2
  5. java第二周小结
  6. @清晰掉 Sizeof与字符串
  7. 微信小程序 API 界面 (2)
  8. Java 有几种修饰符?分别用来修饰什么
  9. 转 实例具体解释DJANGO的 SELECT_RELATED 和 PREFETCH_RELATED 函数对 QUERYSET 查询的优化(二)
  10. python - 简单化list的 For[if] 语句