所以JavaScript是一种函数式语言,类是从函数定义的,函数作用域对应于类构造函数.经过相当长的一段时间研究如何在JavaScript中进行OOP,我现在都得到了它.
我想做的不一定是可能的,所以我首先想知道这是不是一个好主意.所以,假设我有一个数组和类如下:
var Entry = function(name, numbers, address) {
this.name = name;
if(typeof numbers == "string") {
this.numbers = [];
this.numbers.push(numbers);
}
else this.numbers = numbers;
this.address = address;
};
var AddressBook = [];
Run Code Online (Sandbox Code Playgroud)
我添加了以下功能的联系人:
function addContact(name, numbers, address) {
AddressBook.push(new Entry(name, numbers, address));
}
Run Code Online (Sandbox Code Playgroud)
我不能这样做new Entry()会让自己陷入困境AddressBook吗?如果我不能在创建时执行此操作,那么使用Entry原型中的方法来完成它将会很有趣.我无法想办法做任何类似的事情.
您可以尝试将AddressBook数组引用传递给函数,如下所示:
var Entry = function(name, numbers, address, addressBook) {
this.name = name;
if(!(numbers instanceof Array)) {
this.numbers = [numbers];
}
else this.numbers = numbers;
this.address = address;
addressBook.push(this);
};
var addressBook = [];
function addContact(name, numbers, address) {
new Entry(name, numbers, address, addressBook)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |