Javascript Can';我不懂这个代码

Javascript Can';我不懂这个代码,javascript,Javascript,我不懂这个密码。 请帮帮我 function HelloFunc(func){ this.greeting = "hello"; } HelloFunc.prototype.call = function(func){ func? func(this.greeting) : this.func(this.greeting); } var userFunc = function(greeting){ console.log(greeting); } var objH

我不懂这个密码。 请帮帮我

function HelloFunc(func){
    this.greeting = "hello";
}

HelloFunc.prototype.call = function(func){
    func? func(this.greeting) : this.func(this.greeting);
}

var userFunc = function(greeting){
     console.log(greeting);
}

var objHello = new HelloFunc();
objHello.func = userFunc;
objHello.call();
func?func(this.greeting):this.fun(this.greeting)

那是什么意思

另外,我也不能完全理解这些代码
请解释代码

它是三元?:-运算符,可以重写为:

if (func) {
    func(this.greeting);
} else {
    this.func(this.greeting);
}

唯一的区别是,原始表达式有一个值,但在上面的代码段中,它并没有被使用。

EEEck。代码不应试图覆盖/替换fn.call()。创建与内置名称不冲突的自己的函数名。我也不理解它。“func”在该代码中是如何工作的?
func
似乎是一个可选参数,设置时保存一个函数(在javascript中是一阶值)
if(func)
检查是否由调用方传递。在第一种情况下,调用此函数,在后一种情况下调用某些默认函数。谢谢!你是个英雄