gpt4 book ai didi

javascript - 具有方法和自身返回的对象

转载 作者:行者123 更新时间:2023-11-30 12:39:33 24 4
gpt4 key购买 nike

我正在尝试,但没有成功,就像在其他语言中一样,对象可以有一个默认的返回值,但仍然有它的方法。喜欢:

var o = {
this: "MyReturn",
SampleString: "My String",
MyMethod1: function() {},
MyMethod2: function() {},
}

那么,我的输出应该是:

> o
< "MyReturn"
> o.SampleString
< "My String"
> o.MyMethod1()
< function() {}

可以吗? (以不使用Prototype的方式,不然会和我的代码冲突)

最佳答案

这是不可能的。 o 总是一个对象。最接近的方法是自定义 toString 方法并将 o 转换为字符串或将对象设为 Function 并调用 o 类似于 o()

这里有一些尽可能接近 JavaScript 的选项。


选项 1:制作 o 一个函数对象并调用它。

var o = function(){
return "MyReturn";
};
o.SampleString = "My String";
o.MyMethod1 = function() {};
o.MyMethod2 = function() {};

输出

> o()
< "MyReturn"
> o.SampleString
< "My String"
> o.MyMethod1()
< function() {}


选项 2:自定义 toString 方法。

var o = {
toString: function(){return "MyReturn";},
SampleString: "My String",
MyMethod1: function() {},
MyMethod2: function() {},
}

输出

> String(o)
< "MyReturn"
> o.SampleString
< "My String"
> o.MyMethod1()
< function() {}

在第二个选项中,String(o) 可以替换为 ""+oo.toString() 或 anthing这会导致类型转换为字符串。

关于javascript - 具有方法和自身返回的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24947425/

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