先看最简单的一个例子:

 window.meng = window.meng || {};
(function () { /**
*
* @param {Number}width
* @param {Number}height
* @param {String}color
* @constructor
*/
function CreateDiv(width, height, color) {
this.oWidth = width;
this.oHeight = height;
this.oColor = color;
} CreateDiv.prototype.render = function () {
var div = document.createElement("div");
div.style.width = this.oWidth + "px";
div.style.height = this.oHeight + "px";
div.style.backgroundColor = this.oColor;
return div;
};
meng.CreateDiv = CreateDiv;
})();
 (function () {

     var div=new meng.CreateDiv(100,100,"red");
document.body.appendChild(div.render());
})();

上面是一个简单在页面添加div的例子。

当去掉new,的时候在运行会出现

但是我经常忘记,写new,又懒得去改,所以马虎人有马虎人的方法。

“轮子代码”这样改写

 window.meng = window.meng || {};
(function () { /**
*
* @param {Number}width
* @param {Number}height
* @param {String}color
* @constructor
*/
function CreateDiv(width, height, color) {
this.oWidth = width;
this.oHeight = height;
this.oColor = color;
if (!(this instanceof CreateDiv)) {
return new CreateDiv(width, height, color);
}
} CreateDiv.prototype.render = function () {
var div = document.createElement("div");
div.style.width = this.oWidth + "px";
div.style.height = this.oHeight + "px";
div.style.backgroundColor = this.oColor;
return div;
};
meng.CreateDiv = CreateDiv;
})();

就会发现不报错了。。╮(╯▽╰)╭

任性,新建对象不用new的更多相关文章

  1. 是否用new来新建对象

    class A{ }: 1.不使用new来新建对象 A a: 使用完后什么也不用做,系统自动调用析构函数.使用空间是栈. 2.使用new来新建对象 A* a=new A();   delete a;/ ...

  2. js--使用构造器函数来新建对象及操作

    通过new操作符来调用函数,来达到访问对象this值得目的,构造器将其创建的对象返回给我们. 直接上代码 //创建构造器函数 function Gadget(name, color){ this.na ...

  3. 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_new新建对象

    CLR使用 new 操作符来创建新对象,例如:Employee e=new Employee("Param1");  以下是 new  操作符所做的事情. 它计算类型及其所有基类型 ...

  4. oracle新建对象 权限管理

    代码 CREATE USER target IDENTIFIED BY target ; GRANT CONNECT, RESOURCE TO target; 刚刚创建的oracle实例中会内建两个用 ...

  5. java跳过构造方法新建对象

    Java有四种创建对象的方法: (1) 用new语句创建对象,这是最常见的创建对象的方法. (2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constr ...

  6. 通过type类型 新建对象

    Activator根System命名空间中的类非常强大. 将参数传递给构造函数等有很多重载.查看以下文档: http://msdn.microsoft.com/en-us/library/system ...

  7. Session每次访问都回新建对象问题的处理

    写了一个测试Session的类,在同一个会话中的两个Servlet中通过Session进行域值传递,但是每次都回传递失败, 而返回的sessionID每次刷新都回不一样,之后通过sendRedirec ...

  8. Ajax 新建对象

    XMLHttpRequest对象是Ajax的基础,用于后台与服务器进行数据交互. 新的浏览器支撑XMLHttpRequest,而旧的浏览器不支持. var vari; if(window.XMLHtt ...

  9. JEECG新建用户不用系统用户表的实现

    首先新增组织机构 和 角色: -- 新增 组织机构 INSERT INTO `t_s_depart` VALUES ('dept001', '你所在的机构', '你所在的机构的描述', null, ' ...

随机推荐

  1. EI表达式和JSTL

    JSP九大内置对象     WEB域内置对象(存值取值,传值数据用的)    setAttribute/getAttribute;    page  基本不用/ pageContext 只在本页面有效 ...

  2. jquery之wrap(),wrap(),unwrap()方法详解

    [注]wrap():为每个匹配元素外面添加指定的HTML结构, wrapAll(): 为所有匹配元素(作为一个整体)外面添加一个指定的HTML结构 原文地址:http://www.365mini.co ...

  3. Examples For PLSQL Cursors - Explicit, Implicit And Ref Cursors

    A cursor acts logically as a pointer into a result set. You can move the cursor through the result s ...

  4. [HDOJ1175]连连看

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1175 连连看 Time Limit: 20000/10000 MS (Java/Others)     ...

  5. LTE Module User Documentation(翻译4)—— 使用 Fading Trace

    LTE用户文档 (如有不当的地方,欢迎指正!) 7 使用 Fading Trace   本节描述如何在 LTE 仿真中使用 fading traces .   (1)生成 Fading Traces  ...

  6. 如何在本机上将localhost改为www.dev.com

    windows上安装好服务器后,打开本地目录 C:\Windows\System32\drivers\etc\ ,会看到有个hosts文件,打开后里面的代码为: # Copyright (c) - M ...

  7. 2013/7/16 HNU_训练赛4

    CF328B Sheldon and Ice Pieces 题意:给定一个数字序列,问后面的数字元素能够组成最多的组数. 分析:把2和5,6和9看作是一个元素,然后求出一个最小的组数就可以了. #in ...

  8. XML命名空间详解

    http://happylongnv.blog.hexun.com/48859954_d.html 目的:解决同一个元素在相同文件中代表不同含义的问题.因为XML文档中使用的元素不是固定的,那么两个不 ...

  9. HDU5807分段dp

    DAG图. [题意] n(50)个城市m(c(n,2))条单向边(x,y),保证x<y 对于三个点(x,y,z)如果abs(w[x]-w[y])<=K && abs(w[x ...

  10. C# ?(问号)的三个用处(转载)

    public DateTime? StatusDateTime = null; 脑子便也出现个问号,这是什么意思呢?网上搜下,总结如下: 1. 可空类型修饰符(?): 引用类型可以使用空引用表示一个不 ...