在`window`对象中重新定义`undefined`

时间:2015-08-10 12:34:36

标签: javascript

我想知道是否有可能创建一个名为“undefined”的函数,以便在调用undefined()时不会出错?

我试过这样做

var obj = {};
obj[undefined] = function() {};
obj.undefined();

但是,我想做这样的事情:

window[undefined] = function() {};

但我的浏览器(Chrome 44)不允许这样做。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

因为CREATE PROCEDURE [dbo].[getMonthMaxVal] @from DATE, @to DATE AS BEGIN SET NOCOUNT ON; SELECT ds22.* FROM ( SELECT MAX(DAY(ds.datum)) AS TagMax, MONTH(ds.datum) AS MonatMax, YEAR(ds.datum) AS JahrMax, CONVERT(DATE, MAX(ds.datum)) AS DatumMax FROM QR_DS022s ds WHERE ds.datum >= @from AND ds.datum <= @to GROUP BY MONTH(ds.datum), YEAR(ds.datum)) maxDate INNER JOIN QR_DS022s ds22 ON maxDate.DatumMax = CONVERT(DATE, ds22.datum) ORDER BY ds22.datum END undefined对象的不可写属性。

window

由于它不可写,所以它只是忽略了写操作。

引用MDN documentation on undefined

  

在现代浏览器(JavaScript 1.8.5 / Firefox 4+)中, Object.getOwnPropertyDescriptor(window, "undefined").writable false 是ECMAScript 5规范的不可配置,不可写属性。即使不是这种情况,也要避免覆盖它。