这个工厂是不是和别人说的工厂模式不太一样呀!所以说是对象工厂。名字只是个符号。
/**
*名称:JavaScript 对象工厂
*说明:根据第一参数的类型,创建同类型的对象,并且用其它参数对象的成员通过prototype方法扩展此返回对象.
*/
function Factory(){
if (0==arguments.length) return null;
var args=[].slice.call(arguments,0);
var self=args.shift();
switch(self.constructor){
case Function:
var factory=function(){
var func=function(){
if (typeof arguments.callee.this =='function')
arguments.callee.this.apply(arguments.callee,arguments);
}
for (var p in this) func[p]=this[p];
return func;
}
for (var i=0;i<args.length;i++)
for (var p in args[i])
factory.prototype[p]=args[i][p];
return new factory();
case Array:
case Object:
var factory=function(){};
factory.prototype=self;
return new factory;
case Number:
case Boolean:
return (self).constructor(self);
}
}
Factory(3);
Factory(true);
Factory({foo:3});
Factory([{d:3}]);
function ff(){};
Factory(ff);
分享到:
相关推荐
解决浏览器兼容性问题通常需要对各种浏览器的特性有深入理解,并灵活运用CSS hack、条件注释、JavaScript等技术。同时,保持代码规范和使用兼容性良好的库和框架也能有效降低兼容性问题的出现。在开发过程中,测试...
综上所述,解决JavaScript的浏览器兼容性问题通常需要对各个浏览器的特性有深入理解,并通过条件判断或封装函数来实现跨浏览器的兼容代码。通过这些技巧,我们可以确保我们的JavaScript代码能在Firefox、IE以及其他...
以下是一些常见的CSS浏览器兼容性问题及其解决方案: 1. **垂直居中问题**: 在CSS中,要实现一个div的垂直居中,可以使用`vertical-align: middle;`和`line-height`属性。但这种方法要求内容不换行。例如: ```...
在Web开发中,浏览器兼容性问题一直是个棘手的问题,尤其是在JavaScript和DOM操作方面。jQuery作为一款广泛使用的JavaScript库,其核心目标之一就是提供一种跨浏览器的解决方案,以简化JavaScript编程,尤其是解决...
浏览器兼容性问题一直是网页开发中的一个关键挑战,尤其是在CSS样式设计方面。为了确保网页在不同的浏览器上呈现一致的效果,开发者需要掌握一些特定的技巧和策略,即CSS Hack技术。 1. **CSS Hack**:CSS Hack是指...
JavaScript(JS)作为客户端脚本语言,提供了多种方式来实现这样的功能,但考虑到浏览器之间的兼容性问题,开发者需要谨慎选择合适的解决方案。本文将深入探讨如何创建一个兼容各种浏览器的JS日期选择器,以及如何让...
浏览器兼容性是Web开发中的一个核心挑战,尤其是JavaScript、HTML和CSS在不同浏览器之间可能存在差异。以下是一些关键的兼容性问题及其解决方案: 1. **JavaScript兼容性**:JavaScript在不同的浏览器上执行可能有...
接下来,我们讨论JavaScript事件(Event)处理的兼容性问题。在IE浏览器中,事件对象可以直接通过`window.event`获取,而在Firefox及其他遵循W3C标准的浏览器中,事件对象作为函数参数传递。因此,为了实现跨浏览器...
以下是一些主要的浏览器兼容性问题及解决策略: 1. `document.form.item` 问题:在旧版IE中,可以使用`document.form.item(name)`来访问表单元素,但在其他浏览器如Firefox、Chrome等,推荐使用`document.forms...
在进行浏览器兼容性页面开发时,JavaScript 是一个关键的角色,因为不同的浏览器可能对JS的实现有不同的理解和处理方式。以下是一些关键的注意事项,主要聚焦在JavaScript篇: 1. **document.form.item 问题**:在...
在编写JavaScript代码时,为了确保跨浏览器兼容性,推荐使用DOM标准方法,避免依赖特定浏览器的行为。同时,可以借助一些库和框架,如jQuery,它们已经处理了大部分兼容性问题,让开发变得更加简单。
通过对 `setTimeout` 和 `setInterval` 的浏览器兼容性问题的分析,我们了解到在IE浏览器中,这两个函数不支持函数参数传递这一特性。针对这一问题,可以通过使用全局变量、字符串形式的表达式或者创建闭包的方式...
在IT行业中,尤其是在Web开发领域,浏览器兼容性问题始终是一个重要的关注点。本文将深入探讨如何解决IE11(Internet Explorer 11)在Windows 8/8.1系统下的兼容性问题,主要关注用户代理字符串(User Agent String,...
关于JavaScript(简称JS)中的startsWith函数在不同浏览器之间的兼容性问题,是一个前端开发者在编码过程中经常会遇到的情况。JS是目前最流行的网页编程语言之一,它负责网页的动态效果和交互行为。startsWith函数...
浏览器兼容性问题 #### 标注1: 在IE7、IE8、Firefox、Chrome和Safari中,如果`menubar`设为`yes`,默认不显示菜单栏,需按`ALT`键才会显示。反之,设为`no`,即使按`ALT`键也不会显示。 #### 标注2: Safari中,...
`min-width`命令在IE中无效,但可以通过JavaScript表达式实现: ```css #container { min-width: 600px; width: expression(document.body.clientWidth ); } ``` 6. **浮动元素间的间距问题**: 在IE中,当...