相关疑难解决方法(0)

将.apply()与'new'运算符一起使用.这可能吗?

在JavaScript中,我想创建一个对象实例(通过new运算符),但是将任意数量的参数传递给构造函数.这可能吗?

我想做的是这样的事情(但下面的代码不起作用):

function Something(){
    // init stuff
}
function createSomething(){
    return new Something.apply(null, arguments);
}
var s = createSomething(a,b,c); // 's' is an instance of Something
Run Code Online (Sandbox Code Playgroud)

答案

从这里的回复中可以清楚地看出,没有内置的方式.apply()new运营商通话.然而,人们提出了一些非常有趣的解决方案.

我首选的解决方案是Matthew Crumley的这个解决方案(我已将其修改为通过该arguments属性):

var createSomething = (function() {
    function F(args) {
        return Something.apply(this, args);
    }
    F.prototype = Something.prototype;

    return function() {
        return new F(arguments);
    }
})();
Run Code Online (Sandbox Code Playgroud)

javascript oop inheritance constructor class

451
推荐指数
11
解决办法
7万
查看次数

改变图像标签的原型?

我正在尝试编写一个可以执行以下操作的库.

当库包含在头部时,它会改变HTMLImageElement原型,以便用户碰巧在HTML中使用的任何图像标记或者他们在javascript中动态创建的图像标记将具有由我的库定义的默认的onerror函数.

这样做的结果是,如果任何用户图像无法加载,因为他们指向一个坏URL,我的库将以优雅的方式处理它.

我正在尝试以下作为实验,

var img = document.createElement('img');
  img.__proto__.onerror = function() {
    alert('hi');
  };
  document.body.innerHTML = '<img id="foo" src="bar.png"/>'
Run Code Online (Sandbox Code Playgroud)

文件bar.png不存在但不起作用.

但是,如果我只是做类似的事情

  document.body.innerHTML = '<img id="foo" src="bar.png" ' +
    'onerror="this.src = MODIT.getImage(\'blackTile\').src;"/>';
Run Code Online (Sandbox Code Playgroud)

工作正常.这里MODIT.getImage()是一个返回图像元素的函数.你可以在这里玩这个代码:https://mod.it/ciR_BxqJ/

我正在尝试做什么?或者有没有办法全局捕获所有403 GET错误并以某种方式使用javascript处理它们?

谢谢!

javascript dom

7
推荐指数
1
解决办法
1257
查看次数

在Chrome中更改JavaScript日期

无需更改正在调试的计算机的日期/时间,是否可以通过开发工具或通过在控制台中运行一些自定义JavaScript来设置/更改Google Chrome认为的时间或日期?

IE会new Date()返回您已设置的浏览器认为是的内容,而不是系统的日期。

有很多解决方法,但是调试不同的日期/时间会很方便。

javascript datetime google-chrome

5
推荐指数
2
解决办法
6991
查看次数