相关疑难解决方法(0)

JavaScript .prototype如何工作?

我不是那种动态编程语言,但是我写了很多JavaScript代码.我从来没有真正了解这个基于原型的编程,有没有人知道这是如何工作的?

var obj = new Object();
obj.prototype.test = function() { alert('Hello?'); };
var obj2 = new obj();
obj2.test();
Run Code Online (Sandbox Code Playgroud)

我记得很久以前我和人们进行了很多讨论(我不确定我在做什么)但是据我所知,没有一个类的概念.它只是一个对象,这些对象的实例是原始的克隆,对吧?

但是JavaScript中这个".prototype"属性的确切目的是什么?它与实例化对象有什么关系?

更新:正确的方式

var obj = new Object(); // not a functional object
obj.prototype.test = function() { alert('Hello?'); }; // this is wrong!

function MyObject() {} // a first class functional object
MyObject.prototype.test = function() { alert('OK'); } // OK
Run Code Online (Sandbox Code Playgroud)

这些幻灯片也非常有帮助.

javascript dynamic-languages prototype-oriented

1988
推荐指数
21
解决办法
49万
查看次数

为什么原型在简单的JavaScript对象中不可用

我试图理解JavaScript原型,我有点困惑.那里有大量的教程,每个都有不同的解释.所以我不知道从哪里开始.

到目前为止,我已经创建了一个简单的JavaScript对象

var a = {flag : 1}
Run Code Online (Sandbox Code Playgroud)

MDN中,我读到了这一点

JavaScript中的所有对象都来自Object

但我无法找到原型此对象一个 a.prototype给我undefined

然后我发现原型可用a.constructor.prototype.当我创建一个函数var myfunc = function() {}然后myfunc.prototype可用.因此,prototype属性可直接在函数上使用,而不是在对象上.

请帮助我理解这个以及它是什么a.constructor.

任何帮助是极大的赞赏.

javascript prototype

6
推荐指数
1
解决办法
341
查看次数