相关疑难解决方法(0)

JavaScript中的含义是什么意思?

在下面的javascript代码中,[]被指定为变量的值,这是什么意思?

var openTollDebug = [];
Run Code Online (Sandbox Code Playgroud)

javascript arrays variables

20
推荐指数
3
解决办法
1万
查看次数

你能为被劫持的JavaScript数组添加一个函数吗?

这个问题与在Javascript中声明数组时要遵循的最佳实践有关?


假设一个客户端,我们称之为"DB Cooper",首先要求以下代码必须在任何其他JavaScript代码之前运行:

Array = function(){
    alert('Mwahahahaha');
};
Run Code Online (Sandbox Code Playgroud)

此外,Cooper要求必须将自定义函数添加到内置Array对象(而不是被劫持的对象).例如,如果Array未被劫持,则可以通过以下方式完成:

Array.prototype.coolCustomFunction = function(){
    alert('I have ' + this.length + ' elements!  Cool!');
};
Run Code Online (Sandbox Code Playgroud)

哪个能买得起:

var myArray = [];
myArray.coolCustomFunction();
Run Code Online (Sandbox Code Playgroud)

但是,这与第一个要求不兼容.那么,您如何才能最好地满足DB Cooper的要求呢?

注意: DB甚至写了一个测试小提琴来帮助确保解决方案满足他的要求......真是个男人!


更新: 对于那些喜欢挑战的人:请尝试找到解决此问题的无法解决的跨浏览器解决方案.例如,这是一个更劫持的测试用例(感谢重新格式化这个Bergi),它劫持了Array,Object,Array.prototype.constructor和Object.prototype.constructor.到目前为止,看起来可能有一个特定于浏览器的解决方案(参见Bergi对他的回答的评论,如果你找到一种方法在FF中劫持它,请告诉我们),但目前还不清楚是否有这是一个跨浏览器的解决方案.

javascript arrays method-interception

6
推荐指数
1
解决办法
599
查看次数

为什么使用"new"创建一个被认为不好的Javascript数组?

W3学校说

这两个不同的语句都创建一个包含6个数字的新数组:

 var points = new Array(40, 100, 1, 5, 25, 10)  // Bad 
 var points =[40, 100, 1, 5, 25, 10];          // Good
Run Code Online (Sandbox Code Playgroud)

但是没有解释为什么第一个是坏的.

据我所知,唯一的区别是第一个调用构造函数.有人能告诉我为什么第一个是坏的?

javascript arrays

5
推荐指数
1
解决办法
344
查看次数