向Object()传递单个参数的目的
Purpose of passing a single argument to Object ()?
对于上一个问题的回答是,将参数传递给Object
的构造函数并将其作为函数使用的目的是什么,如以下代码所示?
function makeFoo(a, b) {
var foo = Object.create(Foo.prototype);
var result = Foo.apply(foo, arguments);
return Object(result) === result ? result : foo;
}
如果对象已经是对象,则对象构造函数返回它的形参。因此,您的代码所做的是检查result
值是否是一个对象。
在另一个问题的那个函数的上下文中,目标是处理这样一个事实,即"Foo"构造函数在非通过new
调用时可能会尝试返回一个非对象(如字符串或其他东西)。当您使用new
调用构造函数时,任何非对象显式返回值都将被忽略,并且返回值将是构造的对象。
所以最后一行"makeFoo"检查返回值是否已经是一个对象。如果是,那么Object构造函数将返回引用而不创建新对象,因此它将是===
到参数("result")。如果它不是===
,那么这意味着构造函数做了一些奇怪的事情,所以构造的"foo"实例将被返回。
请注意,另一个问题将此描述为"hack"。
相关文章:
- 如何将Google Analytics配置为将URL参数作为单个页面进行跟踪
- 如何根据URL参数生成包含JS内容的单个HTML文件
- 使用jQuery deffered.resolveWith()在单个参数中传递数组
- 在nodejs中,如何使模块的单个实例具有不同参数的构造函数
- 删除错误.MongooDB + Express.传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符
- 在本地将单个变量传递给具有多个参数的函数的最佳方法是什么
- 将参数转换为数组,但无法访问单个索引
- 当您有集合时,调用接收单个对象作为参数的函数的最佳方法是什么
- 是否可以同时从两个调用函数中调用具有单个参数的同一函数
- 发送单个参数与参数数组
- 我可以强制将参数“res.write”作为单个块发送吗
- 如何在执行ajax请求时删除“_”单个Undercore查询参数
- 如何在进行ajax调用时将所有参数作为单个对象传递
- 如何从document.querySelectorAll中检查单个类参数
- JavaScript函数参数中的单个邀请逗号不起作用
- 传递一个函数,进入一个函数,稍后执行与参数?可能作为单个参数
- 如何在jQuery ajax请求中将多个值作为对象添加到单个参数中
- 在javascript中获取URL中的单个参数
- 向Object()传递单个参数的目的
- 将多个参数传递到单个参数中