1.

//基于已有对象扩充其属性和方法
var object = new Object(); object.name = "zhangsan";
object.sayName = function(name)
{
this.name = name;
alert(this.name);
} object.sayName("lisi");

2.

//工厂方式创建对象
function get()
{
alert(this.username + ", " + this.password);
}
//让一个函数对象被多个对象所共享,而不是每一个对象拥有一个函数 对象。
function createObject(username, password)
{
var object = new Object(); object.username = username;
object.password = password; object.get = get; return object;
} var object = createObject("zhangsan", "123");
var object2 = createObject("lisi", "456"); object.get();
object2.get();

3.

//构造函数方式 
function Person()
{
//在执行第一行代码前,js引擎会为我们生成一个对象
this.username = "zhangsan";
this.password = "123"; this.getInfo = function()
{
alert(this.username + ", " + this.password);
} //此处有一个隐藏的return语句,用于将之前生成的对象返回
} var person = new Person();
person.getInfo();

4.

//如果使用原型方式对象,那么生成的所有对象会共享原型中的属性, 

这样一个对象改变了该属性也会反应到其他对象当中。
Person.prototype.username = new Array();
Person.prototype.password = "123"; Person.prototype.getInfo = function()
{
alert(this.username + ", " + this.password);
} var person = new Person();
var person2 = new Person(); person.username.push("zhangsan");
person.username.push("lisi");
person.password = "456"; person.getInfo();
person2.getInfo();

5.

//使用原型+构造函数方式来定义对象
//使用原型+构造函数方式来定义对象,对象之间的属性互不干扰,各 个对象间共享同一个方法
function Person()
{
this.username = new Array();
this.password = "123";
} Person.prototype.getInfo = function()
{
alert(this.username + ", " + this.password);
} var p = new Person();
var p2 = new Person(); p.username.push("zhangsan");
p2.username.push("lisi"); p.getInfo();
p2.getInfo();

6.

// 动态原型方式:在构造函数中通过标志量让所有对象共享一个  方法,而每个对象拥有自己的属性。
function Person()
{
this.username = "zhangsan";
this.password = "123"; if(typeof Person.flag == "undefined")
{
alert("invoked"); Person.prototype.getInfo = function()
{
alert(this.username + ", " + this.password);
} Person.flag = true;
}
} var p = new Person();
var p2 = new Person(); p.getInfo();
p2.getInfo();

最新文章

  1. 微信公众号开发之VS远程调试
  2. BPM业务流程管理与SAP如何更好集成整合?
  3. 在mysql数据库原有字段后增加新内容
  4. [VS2013]如何闪开安装VS2013必须要有安装IE10的限制
  5. Select Statement Syntax [AX 2012]
  6. android studio里的build.gradle基本属性
  7. android 30 下拉列表框:ArrayAdapter和Spinner.
  8. C++学习笔记7——模板
  9. 被误解的 MVC 和被神化的 MVVM
  10. js完美继承代码示例
  11. C语言第八次作业
  12. RMI方式Ehcache集群的源码分析
  13. Python学习(四十)—— Djago之认证系统
  14. Luogu P3374 【模板】树状数组 1
  15. 【CSS3】响应式布局
  16. Sublime 官方安装方法
  17. Python 图示集绵
  18. shell重定向命令执行顺序
  19. session(会话)研究(一)基础
  20. HTC T329手机如何删除系统自带的软件?HTC一键解锁、获取ROOT权限、豌豆荚删除系统软件

热门文章

  1. spoj4155 OTOCI LCT
  2. asp.net调用存储过程2
  3. PHP 基础函数(一)数组的键名和值
  4. 关于GCC Cygwin MinGW MSYS
  5. 关于warning: Clock skew detected. Your build may be incomplete. 的解决方法
  6. linux下svn的用法
  7. 第九章openwrt 703N 网口转串口+串口转网口TTL 数据传输
  8. 2016年终总结--一个Python程序猿的跨界之旅
  9. iOS:视图切换的第二种方式:UINavigationController导航栏控制器
  10. T-SQL经典语句(SQL server)