Mat*_*ins 2 javascript prototype
我在Javascript中有一个对象,并希望使用一个函数处理传递给构造函数的数据,该函数以后可以使用更多数据在外部调用.当然我不想复制代码(一次在构造函数中,一次在函数中),那么我应该如何最好地设置它?
我可以使用嵌套函数,但我被告知这是低效的:
function MyOb(data) {
this.myData = {};
function addData(newData) {
//Add newData to myData
}
addData(data);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用原型,我会在第3行找到"找不到变量addData"错误:
function MyOb(data) {
this.myData = {};
addData(data);
}
MyOb.prototype.addData = function(newData) {
//Add newData to myData
}
Run Code Online (Sandbox Code Playgroud)
所以我被迫使用嵌套函数或重复自己,还是有办法使用原型进行这项工作?
更改
function MyOb(data) {
var myData;
addData(data);
}
Run Code Online (Sandbox Code Playgroud)
至
function MyOb(data) {
this.myData = {}; // or another initialization
this.addData(data);
}
Run Code Online (Sandbox Code Playgroud)
您需要thisJavaScript对象中的显式.
另请注意,using var myData使其成为私有的:您将无法在构造函数外部定义的函数中使用此变量,包括addData函数.这就是你可能需要的原因this.myData.
| 归档时间: |
|
| 查看次数: |
1497 次 |
| 最近记录: |