在早期版本的JavaScript中使用Object.create()
我试图在一个只支持JavaScript 1.5的XFA pdf中使用pdf.js,因此无法识别Object.create()和call()。pdf.js中Object.create()有近30种用法 有没有办法添加一个函数来扩展Object()以包含create()?这只是为了向后兼容 凯尔明白了:在早期版本的JavaScript中使用Object.create(),javascript,pdf,prototype,Javascript,Pdf,Prototype,我试图在一个只支持JavaScript 1.5的XFA pdf中使用pdf.js,因此无法识别Object.create()和call()。pdf.js中Object.create()有近30种用法 有没有办法添加一个函数来扩展Object()以包含create()?这只是为了向后兼容 凯尔明白了: if(typeof Object.create !== "function") { Object.create = function (o) { function F() {
if(typeof Object.create !== "function") {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
谢谢你的回复。是的,我不知道为什么我把call()包括在里面
Kyle“…因此无法识别Object.create()和call()…”非常确定
call
大约从1998年就开始使用JavaScript了。你只需查看MDN文档中的polyfill:(这太复杂了——使用Adobe Reader使用PDF.js解析PDF)是的,我知道。但是使用Acrobat JS API进行我所做的操作会使Adobe Reader 10崩溃。请注意,真实的对象.create
有第二个参数,在ES5之前的环境中无法填充该参数。填充时,我建议查看是否有第二个参数并引发异常。除了@T.J.Crowder所说的之外,标准的Object.create
允许您将null
设置为原型,但是您发布的典型填充在创建新对象时将失败。因此,您可能需要测试null
,并替换Object.prototype
。。实际上,由于这似乎是针对Mozilla的JS,您可能会使用\uuuuuu proto\uuuu
作为补丁,如果我记得的话,它将接受null
<代码>var new_o={};新的(o)协议(o);;返回新的_o代码>好的捕获cookie。我会用的。幸运的是,pdf.js没有使用Object.create的第二个参数。