我正在尝试将一些命名空间包含到我的 Javascript API 中。
这是我到目前为止所拥有的:
if (!Sample || Sample == "undefined")
var Sample = {};
Sample.SomeApi = {};
Sample.SomeApi.prototype = {
SomeMethod: function() {
alert('some api');
}
};
这是怎么回事?
当我调用 Sample.SomeApi.SomeMethod();
//它不会工作,因为它会提示:
Uncaught TypeError: Object #<Object> has no method 'SomeMethod'
(anonymous function)Course:43
onclick
最佳答案
我认为你的意思是 __proto__
而不是 prototype
,如下所示:
if (!Sample || Sample == "undefined")
var Sample = {};
Sample.SomeApi = {};
Sample.SomeApi.__proto__ = {
SomeMethod: function() {
alert('some api');
}
};
Sample.SomeApi.SomeMethod();
你可以在这个jsFiddle中测试一下:http://jsfiddle.net/luisperezphd/xtyyf/
但为什么不只是这个:
if (!Sample || Sample == "undefined")
var Sample = {};
Sample.SomeApi = {
SomeMethod: function() {
alert('some api');
}
};
Sample.SomeApi.SomeMethod();
干净多了。
还有 jsFiddle:http://jsfiddle.net/luisperezphd/HUuMQ/
关于JavaScript 原型(prototype)编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8799045/