javascript构造函数的理解
构造函数是在javascript文档的创建对象当中提到的,主要目的是为了解决代码复用,能够大量产生同类型而多作用的方法
在javascript中给出了几种创建对象的模式:
1.对象字面量
例:
var obj={
name:"javascript",
callMe:function(){ alert(this.name) }
}
2.工厂模式:简单来说就是封装对应给定的接口参数信息对象,然后返回
例:创建一个每个人输入名字,年龄,性别,的这么一个对象
function(name,age,sex){
var person=new Object();
person.name=name;
person.age=age;
person.sex=sex;
return person;
}
3.构造函数:它不直接创建对象,直接将属性与方法值赋给了this对象,且没有返回语句
例:创建一个与上面工厂模式一样效果的对象
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
var person=new Person('javascript',100,'Boy');
按照惯例,被用作构造函数的函数名称首写字母应该大写,其它则以小写字母开头,主要是为了区别于ECMAjavascript中其它函数
与工厂模式最大的区别就是要创建一个Person的实例,也就是new操作符,在这个过程中经历以下几个环节
创建一个新对象
将构造函数的作用域赋给了新对象(在这里也就是赋给了person对象)
为新对象person添加属性
返回新对象
很多人就问了,这工厂模式跟构造函数有什么区别呢?
1.创建方式不同
2.
javascript构造函数的理解的更多相关文章
- javascript javascript面向对象的理解及简单的示例
javascript面向对象的理解及简单的示例 零.本节重点: 1.封装: 2.继承: 壹.下面理解: 一. javascript面向对象概念: 为了说明 JavaScript 是一门彻底的面向对象的 ...
- js之构造函数的理解
在JavaScript中,创建对象的方式包括两种:对象字面量和使用new表达式.对象字面量是一种灵活方便的书写方式,例如: 1 2 3 4 5 6 var o1 = { p:”I’m in ...
- javascript单例模式的理解
javascript单例模式的理解 阅读目录 理解单例模式 使用代理实现单例模式 理解惰性单例 编写通用的惰性单例 单例模式使用场景 回到顶部 理解单例模式 单例模式的含义是: 保证一个类只有一个实例 ...
- 转 关于C#中派生类调用基类构造函数的理解
关于C#中派生类调用基类构造函数的理解 .c#class 本文中的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数 1. 当基类中没有自己编写构造函数时,派生类默认的调用 ...
- JavaScript 构造函数
关于JavaScript构造函数,如今出现了很多JavaScript的框架,例如jQuery.Ext等等这些,这些将JavaScript作为一种面向对象的语言进行编程,那么JavaScript到底是怎 ...
- JavaScript面向对象的理解
JavaScript面向对象的理解 笔记链接: http://pan.baidu.com/s/1c0hivuS 1:JavaScript 中分两种对象,函数对象和普通对象new Function() ...
- javascript 构造函数方式定义对象 (转载)
javascript 构造函数方式定义对象 javascript是动态语言,可以在运行时给对象添加属性,也可以给对象删除(delete)属性 <html> <head> & ...
- C++ 类的多态一(virtual关键字--构造函数深刻理解)
//virtual关键字--构造函数深刻理解 #include<iostream> using namespace std; /* C语言编译器,c++编译器全部是静态链编,就是一段一段代 ...
- C++拷贝构造函数 的理解
#include <iostream> using namespace std; //拷贝构造函数的理解 class Point { public: Point(); Point(int ...
随机推荐
- RES协议
MFC 通过HTML访问内部资源 资源导入JPG的图片,资源对应ID是137 <img src="res:/JPG/#137" width="100%" ...
- C语言嵌入式系统编程修炼
C语言嵌入式系统编程修炼 2008-08-19 作者:宋宝华 来源:天极网 C语言嵌入式系统编程修炼之背景篇 本文的讨论主要围绕以通用处理器为中心的协议处理模块进行,因为它更多地牵涉到具体的C语言编程 ...
- 二十四种设计模式:模板方法模式(Template Method Pattern)
模板方法模式(Template Method Pattern) 介绍定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.Template Method使得子类可以不改变一个算法的结构即可重定义该算法 ...
- Axios使用文档总结
vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios.Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. 一.安装 ...
- EPF与Myeclipse 增强代码自动智能提示
摘自: http://blog.csdn.net/ylchou/article/details/7639467 数字证书文件,导入用. EPF文件是著名的软件开发工具——Eclipse(IDE)的配置 ...
- Spring框架学习(7)spring mvc入门
内容源自:spring mvc入门 一.spring mvc和spring的关系 spring mvc是spring框架提供的七层体系架构中的一个层,是spring框架的一部分,是spring用于处理 ...
- 云计算之路-阿里云上:SLB故障引发的网站不能正常访问
2013年8月22日23:50~23:58左右,由于阿里云SLB(负载均衡)故障造成网站不能正常访问,给大家带来了麻烦,望大家谅解! 8月19日我们收到阿里云的短信通知: 尊敬的阿里云用户: ...
- JAVA学习笔记 -- 读写XML
XML是一种可扩展标记语言 以下是一个完整的XML文件(也是下文介绍读写XML的样本): <? xml version="1.0" encoding="UTF-8& ...
- 算法笔记_050:硬币收集问题(Java)
目录 1 问题描述 2 解决方案 2.1 动态规划法 1 问题描述 在n*m格木板中放有一些硬币,每格的硬币数目最多为一个,在木板左上方的一个机器人需要收集尽可能多的硬币并把它们带到右下方的单元格 ...
- chromedriver中的浏览器选项
There are lots of command lines which can be used with the Google Chrome browser. Some change behavi ...