gpt4 book ai didi

javascript - 在 JavaScript 中,如何使用 __proto__ 属性创建更多对象?

转载 作者:行者123 更新时间:2023-11-30 08:59:34 25 4
gpt4 key购买 nike

根据 Caja 论文:

Forbidden names. In Firefox, access to the "__proto__" property of an object would grant the authority to create more objects like it, which violates the principle of least authority. Therefore, Caja rejects all names ending with " __ " (double underscore). This also gives the Caja implementation a place to store its book- keeping information where it is invisible to the Caja programmer.

我在 Firebug 中试过,只看到 __proto__ 拥有的所有方法(即 pkcsll、atob、btoa、screenX 等),但我没有看到副本型方法。 __proto__ 是如何被利用的?

最佳答案

除非我不明白他们在说什么,否则您不需要 __proto__ 从原始的相同原型(prototype)创建更多对象。

您可以使用标准的 ecmascript 5 方法来做到这一点。

function FooBar() {}
FooBar.prototype.foo = function() { return "bar"; };

/* create a FooBar object */
var fb1 = new FooBar();



/* using __proto__ this creates an object with the same prototype as fb1 */
var fb2 = {};
fb2.__proto__ = fb1.__proto__;



/* and so does this, but without __proto__ */
var fb3 = Object.create(Object.getPrototypeOf(fb1));



fb1 instanceof FooBar; // true
fb2 instanceof FooBar; // true
fb3 instanceof FooBar; // true

关于javascript - 在 JavaScript 中,如何使用 __proto__ 属性创建更多对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10467063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com