gpt4 book ai didi

javascript - Function.prototype.method 什么是原型(prototype)[名称]

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:37:26 24 4
gpt4 key购买 nike

我尽量不重复问题,因为我已经看到一些关于 Douglas Crockford 的 Javascript the Good parts 书的问题/答案

我理解这段代码的大部分内容

Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};

Function.method('inherits', function (Parent) {
this.prototype = new Parent( );
return this;
});

var Mammal = function (name) {
this.name = name;
}.method('get_name', function () {
return this.name;
}).method('says', function() {
return this.saying || '';
});

var Cat = function (name) {
this.name = name;
this.saying = 'meow';
}.inherits(Mammal)

var myCat = new Cat('bagsley');
myCat.get_name();

我遇到的问题是 this.prototype[name] 为什么不写成 this.prototype.name;我知道返回这个允许链接,这里的语法看起来与 jQuery 非常相似,但我仍然没有得到原型(prototype) [name] 部分

感谢任何帮助谢谢

最佳答案

obj.nameobj[name] 是有区别的。

这...

obj.name = 123;

...将值 123 分配给(对象的)“name” 属性。

另一方面,这...

obj[ name ] = 123;

...会将值 123 分配给那些名称等于 name 变量/参数值的属性。

所以:

var name = 'foo';

obj.name = 123;
obj[ name ] = 456;

// And now:
obj.name; // 123
obj.foo; // 456

关于javascript - Function.prototype.method 什么是原型(prototype)[名称],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10567655/

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