gpt4 book ai didi

javascript - javascript 中的构造函数和原型(prototype)

转载 作者:行者123 更新时间:2023-11-29 10:44:30 25 4
gpt4 key购买 nike

我正在阅读一段定义构造函数的代码

var Resource = function(data) {
angular.extend(this, data);
}

然后为它定义一个方法。

Resource.query = function(url) {
console.log(url);
}

请问这是怎么操作的?我知道函数也是对象,这是否等同于以下内容?但如果是这样,那么构造函数会发生什么?

var data = {};
data.query = function(url) {
console.log(url);
}

另外,为什么我们不直接在原型(prototype)上定义它呢?

Resource.prototype.query = function(url) {
console.log(url);
}

http://jsfiddle.net/HPg6A/

最佳答案

您可以在 prototype 上定义方法,只有当它们要在特定实例上调用时。当方法直接定义为构造函数成员时,通常是模仿static方法。

基本上,当一个方法与一个密切相关,但作为实例方法没有多大意义时,它可以作为静态方法实现。

我认为您会同意我的看法,即第二个示例更有意义,如果您同意,您已经理解了其中的区别。

1-

var user = new User();

user.findUser('somequery').then(...);

2-

User.findUser('somequery').then(...);

关于javascript - javascript 中的构造函数和原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22278134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com