我正在阅读有关javascript函数/原型和(fiddle提供的)
我偶然发现了一个1(在页面底部的函数原型部分),我很好奇:我正在阅读有关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
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)