否”;函数.方法”;在JavaScript中
No "Function.method" in JavaScript?
我正在读Douglas Crockford的书,他使用了的结构
Function.method('inherits', function(Parent){
this.prototype=new Parent();
return this;
});
如果我们不考虑它的含义,我根本无法绕过语法。我试着在chrome中运行它,并获得
Uncaught TypeError: undefined is not a function test3.html:18
(anonymous function)
如果我尝试(jsfiddle)也会发生这种情况
Function.method("test", function () { return "TEST"; });
似乎有一个帖子说这条线有效,但我无法让它发挥作用。为什么会这样?
在您引用的帖子中,该行之所以有效,是因为Function.prototype
已使用以下方法进行了扩展:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
如果你运行上面的代码,然后才运行你所拥有的代码,一切都会正常工作——或者你可以把.method
改为.prototype[name_here] =
,一切都一样。
关于最佳做法的说明
如果你要在这个时代扩展原型,最好使用Object.defineProperty
来确保该方法是不可枚举的。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别