意外的令牌''在向原型添加功能时
Unexpected token '.' when adding function to prototype
我正在尝试创建一个纯虚拟基类的javascript等价物。但是我得到了一个语法错误,"Unexpected token"。语法有什么问题?
MyNamespace.MySubNamespace.Repository = {
Repository.prototype.Get = function(id) { // <-- error occurs here
}
Repository.prototype.GetAll = function() {
}
Repository.prototype.Add = function(entity) {
}
Repository.prototype.AddRange = function(entities) {
}
Repository.prototype.Remove = function(entity) {
}
Repository.prototype.RemoveRange = function(entities) {
}
}
编辑:以下是命名空间的构造方式。
var MyNamespace = MyNamespace || {};
MyNamespace.createNamespace = function (namespace) {
var nsparts = namespace.split(".");
var parent = MyNamespace;
if (nsparts[0] === "MyNamespace") {
nsparts = nsparts.slice(1);
}
for (var i = 0; i < nsparts.length; i++) {
var partname = nsparts[i];
if (typeof parent[partname] === "undefined") {
parent[partname] = {};
}
parent = parent[partname];
}
return parent;
};
MyNamespace.createNamespace("MyNamespace.MySubNamespace");
您的代码需要一个对象,但您将该对象视为一个方法。
MyNamespace.MySubNamespace.Repository = { <-- Object start
Repository.prototype.Get = function(id) { // <-- You are setting a method...
你应该做的是
MyNamespace.MySubNamespace.Repository = function() { };
MyNamespace.MySubNamespace.Repository.prototype = {
get : function(){},
add : function(){}
};
prototype
属性用于函数,Repository
是一个没有prototype
属性的对象。
Uhm,您需要定义该名称空间的每个级别,然后您需要理解,您将Repository设置为的不是像类那样的代码块,而是对象文字,因此必须使用适当的语法。
var MyNamespace = {MySubNamespace: {}};
MyNamespace.MySubNamespace.Repository = { // This is not a block. This is an object literal.
Get: function(id) {
},
GetAll: function() {
},
Add: function(entity) {
},
AddRange: function(entities) {
},
Remove: function(entity) {
},
RemoveRange: function(entities) {
}
};
相关文章:
- 什么意思是“;向原型添加方法”;
- 向构造函数或原型添加属性之间的区别
- 何时向原型添加成员
- javascript原型-添加回调
- 向对象原型添加命名空间方法
- 无法将方法原型添加到 JavaScript 对象
- 向原型添加函数
- 向对象原型添加函数的正确方法
- 向对象原型添加函数会导致函数显示在所有“OBJ 中的 X”循环中
- 为什么在 javascript 中向数组原型添加方法会破坏 for 循环上的迭代
- 向函数、对象和原型添加属性
- 使用原型添加无限的输入字段
- 向Object/Number/String原型添加方法
- Uncaught TypeError:向Date原型添加函数时,这不是Date对象
- 如何通过原型添加Nodelist/HtmlColaction新方法
- 意外的令牌''在向原型添加功能时
- 通过原型添加方法
- 向JavaScript原型添加多个方法
- 为js对象的原型添加一个方法
- 向Javascript原型添加方法和向现有对象添加功能之间的区别是什么?