我读到了关于javascript函数/原型和(fiddle提供)的文章
I was reading about javascript functions/prototypes, and (fiddle provided)
我偶然发现了一段我很好奇的代码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) 添加
this.getSalary = getSalaryFunction;
this.addSalary = addSalaryFunction;
我现在假设的是原型(在name
和salary
属性之后),和ii)将原来的第7行和第12行分别替换为:
function getSalaryFunction()
和
function addSalaryFunction(addition)
此外,在这种情况下,/*return?*/Employee.salary+=addition;
将是this.salary = this.salary + addition;
的简写,对吧?
jsfiddle代表了我的想法:http://jsfiddle.net/4fL8v69b/1/
1http://www.permadi.com/tutorial/jsFunc/index.htmlWeb开发人员介绍JavaScript"函数"对象的特性。
在您的示例中,您将函数getSalaryFunction
和addSalaryFunction
添加到全局(或至少外部)作用域,在那里它们可以独立调用(并且可能返回未定义的)
在最初的例子中,函数只作为其父对象的一部分存在,因此它们在被调用时更有可能做正确的事情。
*我正在为JS中this
的复杂性挥手。
相关文章:
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 我需要为我的朋友在这个项目上提供帮助
- Grunt-connect在根目录之外提供静态文件
- 如何提供在javascript中编写对对象的重复访问以设置元素样式的简写
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 文档就绪提供了错误的选择器高度
- 为图像提供灯箱效果
- 如果在代码末尾进行求值,jQuery-console.log将提供空数组
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- 函数jquery.html()不提供数据属性集值
- 有人能提供一张ember数据与broswer's的持久层
- 提供tar.gz文件并在nodejs上下载
- 如何在不在本地下载的情况下将url中提供的文件(pdf/doc)转换为json/string/base64格式
- CORS:访问控制允许原点不等于提供的原点
- SqlStorage Ionic 2作为服务/提供程序
- 如何通过资产管道提供Javascript中子文件夹中的图像
- 使用AssetPipeline如何在Javascript中提供图像
- 使用connect vhost为多个express.js应用程序提供服务
- 在Hapi.js中提供静态JavaScript文件不起作用
- 我读到了关于javascript函数/原型和(fiddle提供)的文章