Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我正在阅读有关javascript函数/原型和(fiddle提供的)_Javascript_Function_Constructor_Prototype - Fatal编程技术网

我正在阅读有关javascript函数/原型和(fiddle提供的)

我正在阅读有关javascript函数/原型和(fiddle提供的),javascript,function,constructor,prototype,Javascript,Function,Constructor,Prototype,我偶然发现了一个1(在页面底部的函数原型部分),我很好奇: function Employee(name, salary) { this.name=name; this.salary=salary; } /*line7*/ Employee.prototype.getSalary=function getSalaryFunction() { return this.salary; } /*line12*/ Employee.prototype.addS

我偶然发现了一个1(在页面底部的函数原型部分),我很好奇:

function Employee(name, salary)
{
 this.name=name;                
 this.salary=salary;
}

/*line7*/ Employee.prototype.getSalary=function getSalaryFunction()
{
  return this.salary;
}

/*line12*/ Employee.prototype.addSalary=function addSalaryFunction(addition)
{
  this.salary=this.salary+addition;
}
1) 我想知道是否可以像下面那样写同样的东西,以及其中一个是否更实用

i) 加

我现在假设的是原型(在
名称
薪资
属性之后), 和 ii)将原来的第7行和第12行分别替换为:

function getSalaryFunction()

。另外,
/*返回?*/Employee.salary+=添加
将是
this.salary=this.salary+addition的简写在这种情况下,对吗

代表我想法的JSFIDLE:


1 Web开发人员介绍JavaScript“函数”对象的功能。

在您的示例中,您将函数
getSalaryFunction
addSalaryFunction
添加到全局(或至少外部)作用域,在该作用域中可以独立调用(可能返回未定义的函数)

在最初的示例中,函数仅作为其父对象的一部分存在,因此它们在调用时更有可能做正确的事情


*我对JS中的
这个
的复杂性挥手致意。

“功能会更强大吗?”——这是什么意思?这是JavaScript对
封装的一个简单魔法<代码>此。无法从对象文本访问工资
,您必须生成简单的
getter
setters
,因此使用
函数
对象的
原型
属性。
原型
属性仅使
函数
变量
排序为
public
该对象的成员。以及直接附加到
员工
的任何
函数
变量
,如
Employee.abc=10
Employee.xyz=function(){}员工
对象,code>将是
静态的
公共的
。为什么要投否决票?你是说原始代码和小提琴不一样@菲利普。我没有投你反对票。。我试图回答你的问题,我甚至没有想到原型之外的
this
关键字。哇!因此,如果我将函数从
return this.salary
等更改为
return Employee.salary
等(在小提琴中),它是否更有可能执行预期的操作?绝对不会;这将引用构造函数本身的属性,而不是通过调用
newemployee()
创建的实例。
function getSalaryFunction()
function addSalaryFunction(addition)