繁体   English   中英

示例来自:“Javascript - 好的部分”

[英]Example from: “Javascript - The Good Parts”

以下解决了什么“丑陋”? 有一些我没有得到的东西,我很感激帮助理解它是什么。


例如,通过扩充Function.prototype,我们可以为所有函数提供一个方法:

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

通过使用方法方法扩充Function.prototype,我们不再需要键入prototype属性的名称。 现在可以隐藏一点丑陋。

嗯,丑陋是主观的,但让我们看看。

你经常写:

function Foo () {}
Foo.prototype.method1 = function ()  { /*...*/ };
Foo.prototype.method2 = function ()  { /*...*/ };

您可以将prototype对象扩展为构造函数 ,该函数具有要继承到由new运算符创建的实例的属性。

例如,使用var obj = new Foo(); 您正在创建Foo构造函数的实例,该对象将继承绑定到Foo.prototype对象的所有属性以及原型链中更高的其他对象。

Crockford的方法也是如此,该方法在Function.prototype对象中定义,所有函数都从该对象继承,因此您可以像这样调用方法:

function Foo () {}
Foo.method('method1', function () { /*...*/ });
Foo.method('method2', function () { /*...*/ });

它基本上只是隐藏了代码中的prototype单词,Crockford认为丑陋 ...

“JavaScript The Good Parts”是一本非常好的书,但我认为这是基于Douglas Crockford对该语言的个人观点。

我同意他很多事情,但我也不同意某些方面......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM