gpt4 book ai didi

小写 "o"调用对象的 JavaScript 函数

转载 作者:行者123 更新时间:2023-11-29 10:22:50 24 4
gpt4 key购买 nike

我刚刚看了一个介绍性的 JavaScript lecture来自 Douglas Crockford,他在其中提到了一个名为 object 的函数,该函数应该用于创建一个链接到作为其参数的对象的新对象。我猜他的意思是,如果我说

var objB = object(objA);

objB 的内部[[prototype]] 引用设置为objA,尽管他没有明确地这样表述.

另一方面,我读过他的book ,其中他根本没有提到这样的函数,而是提出了他自己从原型(prototype)创建对象的方法,定义了以下函数:

Object.create = function(o) {
var F = function() {};
F.prototype = o;
return new F();
}

本质上是利用 new 运算符的行为,将新创建对象的内部 [[prototype]] 链接设置为构造函数的 prototype 属性指向。

我的问题是他为什么要省略一个内置函数并发明自己的方法来做同样的事情。之前对 object 函数的调用真的等同于

var objB = Object.create(objA);

还是有细微差别?

最佳答案

这两个函数是一样的,都不是内置于 JavaScript 中的。参见 Crockford 的 article描述他为什么在不同的命名约定之间切换。

从 future 编辑:我看到这个旧答案,想指出 Object.create()确实是一个原生的(也是非常重要的)ES5 方法。

关于小写 "o"调用对象的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8000298/

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