所以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原型中的方法来完成它将会很有趣.我无法想办法做任何类似的事情.
鉴于源 Angular Service 代码
@Injectable()
export class HomeContentService {
constructor(private http: HttpClient) { }
getContent(): Observable<string> {
let fileURI = '/assets/content/home.md';
let opt = { responseType: 'text' };
return this.http.get<string>(
fileURI,
opt
);
}
Run Code Online (Sandbox Code Playgroud)
调用getContent()应该返回一个Observable<string>. 但是,当我运行时ng serve,我得到Type 'string' is not assignable to type 'json'.
经过几次尝试,webpack 似乎编译得很好,我没有做任何更改,但是只要我关闭进程并ng serve再次尝试,问题就会再次发生。
我想我的设置有问题responseType: 'text',但我不知道是什么。谷歌搜索也没有帮助。
有任何想法吗?
这可能是一个愚蠢的问题,因为我可以看到"16是2的幂"和"每个位代表2 ^(n个位)值"之间的关系,因此两个十六进制数字代表字节的可能值是合乎逻辑的. .然而,我仍然太盲目,看不出它会如何比十进制更好,因为它需要转换成二进制.
有人可以解释低级伪编程中的数字符号转换过程,使其更容易理解吗?我实在看不出是否有转换过程被缩短是无论如何要来一次转换.
所以我用requestAnimationFrame编写了一个有效的应用程序(实际上是它的一半).在项目过于复杂之前,我急于以面向对象的方式重写它,这样我们就可以更好地实现插件(并且还可以在不更改整个应用程序的情况下修复模块).事实上,该应用程序的第一个版本实际上已经搞砸了,并且由很多测试代码组成.
所以我有以下内容:
Aventura.prototype.update = function() {
var av = this;
requestAnimationFrame(av.update);
/* ... frame code ... */
};
Run Code Online (Sandbox Code Playgroud)
我在控制台日志中得到"Uncaught TypeError:Type error",就在requestAnimationFrame行中.我知道我的浏览器有一个正确的requestAnimationFrame实现,因为我完全使用了我的应用程序的混乱版本.
我得出的结论是它引发了一个异常,因为我正在调用一个方法,它是调用者自己的父对象的一个成员(我知道它的方法完全相同,但问题显然不是自调用,因为那是皇家空军应该做什么).什么是错的线索?