对于对象obj
,我可以定义以下两行语句
var obj ={} //this is an object
obj.isShiny = function () {
console.log(this);
return "you bet1";
};
作为一行声明
var obj={
isShiny : function () {
console.log(this);
return "you bet1";
}
};
对于具有如下两行语句的函数func
var func = function () {console.log(this)}; //this is a function
func.isShiny = function () {
console.log(this);
return "you bet1";
};
是否可以将其合并为一行语句?
答案 0 :(得分:1)
是否可以将其合并为一行语句?
不是你的意思,没有。
您可以在一行中完成,但不能在单个语句/表达式中完成。
你可以只有一个最外面的语句/表达,但我无法想象你的意思:
Id Comments Type
1 Work Day
Play Afternoon
Sleep Night
对此有一点要求,也许如果你必须填写一些你只需填写一个表达式的东西(可能作为较大对象的属性初始值设定项的一部分)。
答案 1 :(得分:1)
是的,使用Object.assign
:
var func = Object.assign(
function() {console.log(this)},
{
isShiny: function () {
console.log(this);
return "you bet1";
}
}
);
答案 2 :(得分:0)
这是另一个答案:)
if (typeof Function.prototype.method !== "function") {
Function.prototype.method = function (name, implementation) {
this[name] = implementation;
return this;
};
}
var func =
function () {console.log(this)}.method
("isShiny",function () {
console.log(this);
return "you bet1";
});//this is a function
console.log(func.isShiny());