如何为数组/对象创建方法/函数
How to create a method/function for array/object
这是我的第一个问题,请不要客气。
我正在尝试创建一个对象数组,其中对象包括一个方法/函数来检索数据。
最后我不想用getFirstName(arrayName, arrayNumber)
,而是用
aliens[x].getFirstName;
或
persons.first.getFirstName;
如果在Javascript中不可能,或者以这种方式可能,请建议下一个最好的方法。
var persons = [
{
firstname : "John",
lastname : "Doe",
age : 50,
eyecolor : "blue",
},
{
firstname : "Jane",
lastname : "Siyabonga",
age : 39,
eyecolor : "brown",
},
]
var aliens = [
{
firstname : "Bob",
lastname : "the Alien",
age : 350,
eyecolor : "yellow",
},
{
firstname : "xblanque",
lastname : "the Predator",
age : 19,
eyecolor : "red",
},
]
function getFirstName(arrayName, arrayNumber)
{
var x = arrayName[arrayNumber].firstname;
return x;
}
Array.prototype.getLastName=function()
{
var x = this.lastname;
return x;
}
ECMAscript支持getter
和setter
方法。在任何与ES5兼容的实现中,我们都可以像
var obj = {
foo: 42,
bar: 32,
get getFoo() {
return this.foo;
},
get sum() {
return this.foo + this.bar;
}
};
现在我们可以像
那样访问它obj.getFoo; // 42
obj.sum; // 74
另一种创建这些的方法是ES5的
Object.defineProperty
。例如:Object.defineProperty(obj, 'getBar', {
get: function() {
return this.bar;
}
});
aliens[x].firstname;
工作正常。但是,正如@jAndy建议的那样,您可以像使用任何OOP语言一样使用getter和setter。
function Alien( firstname, lastname, age, eyecolor) { // constructor
// ...
this.getFirstName = function() {
return firstname;
};
}
var aliens = [
new Alien("Bob", "the Alien", 350, "yellow"),
new Alien("xblanque", "the Predator", 19, "red")
];
console.log(aliens[0].getFirstName()); // will output "Bob"
还要注意Array.prototype
操作:您正在将getLastName
方法添加到任何数组中。
相关文章:
- 如何向Selectize元素添加渲染和创建方法
- 如何在 javascript 中为数组创建方法作为对象的属性
- 有没有办法在应用程序脚本中使用JavaScript为对象创建方法字典
- 如何在 Javascript 和 OOP 中创建方法
- 如何为自定义聚合物元素创建方法并在主应用程序中调用它
- 在 JavaScript 类中创建方法事件
- 意外的令牌'这'同时在对象内部创建方法
- 简单级别,在DOM中选择元素,优化,创建方法函数
- JavaScript静态对象创建方法的差异
- 什么'我的代码在用对象文字表示法创建方法时出错了
- JavaScript对象创建方法
- 在JavaScript中,这些不同的对象创建方法的正确应用是什么?
- 在js中创建方法的问题
- 如何为数组/对象创建方法/函数
- XML解析vs DOM实现创建方法
- 在javascript中创建方法链是否有众所周知的模式
- Javascript对象原型和对象.创建方法
- 如何在JS/Seed的GObject子类中创建方法
- 在forEach()中创建方法
- 在函数内部创建方法