在Scala中,我可以定义一个抽象类并使用对象实现它:
abstrac class Base {
def doSomething(x: Int): Int
}
object MySingletonAndLiteralObject extends Base {
override def doSomething(x: Int) = x*x
}
Run Code Online (Sandbox Code Playgroud)
我在Python中的具体例子:
class Book(Resource):
path = "/book/{id}"
def get(request):
return aBook
Run Code Online (Sandbox Code Playgroud)
继承在这里没有意义,因为没有两个类可以具有相同的功能path.并且只需要一个实例,因此该类不会充当对象的蓝图.换句话说:这里不需要类Resource(Book在我的例子中),但是需要一个基类来提供通用功能.
我想:
object Book(Resource):
path = "/book/{id}"
def get(request):
return aBook
Run Code Online (Sandbox Code Playgroud)
Python 3的方法是什么?
默认javascript编辑器Eclipse非常差outlining和code completion.因此,对于任何现代的javascript应用程序,ExtJS或者NodeJS你需要编写大量的对象文字语句,Eclipse变得毫无用处.并且不可能问如何正确地做到这一点.
现在我发现Ebay开源似乎有专门设计的工具来替换标准编辑器中的这个缺陷,对于一般的javascript和NodeJS.
V8 debugger在默认WDT安装中安装普通的NodeJS Eclipse 非常简单,除了设置一些脚本映射外,它很容易上手.
但是当我尝试安装时VJET,东西就没用了.完全没有代码辅助,没有调试,没有.VJET模式被设置为调试和填充的默认模式,但是当我无法使其工作时,我找不到任何选项来切换回普通的Eclipse/JS Editor/V8 Debugger.即使我删除了所有VJET内容,我的Eclipse安装也遭到了轰炸,完全擦除了工作空间和主页配置+下载终于解决了这个问题.
所以我希望有人能解释一下: 让VJET在Eclipse中开发Node.JS的确切步骤是什么,以及可能如何在'VJET'模式和'默认'模式之间切换?
我有一个JS文字对象字符串{name:{first:"George",middle:"William"},surname:"Washington"},我必须在Json中转换它.我怎么能用PHP做到这一点?
是否可以动态创建对象文字?像这样:
var arr = [ 'one', 'two', 'three' ];
var literal = {};
for(var i=0;i<arr.length;i++)
{
// some literal push method here!
/* literal = {
one : "",
two : "",
three : ""
} */
}
Run Code Online (Sandbox Code Playgroud)
因此我希望结果如下:
literal = {
one : "",
two : "",
three : ""
}
Run Code Online (Sandbox Code Playgroud) 请参考下面的代码,当我"注释"任何一条注释掉的行时,它会导致错误(在IE中)为"':'expected".那么我的结论是正确的,即无法提供对象值的引用,作为字符串文字中的对象键; 这是严格的解释/解析问题吗?与Crockford的"好部分"相比,这是否是Javascript的可怕(或至少"坏")"部分"的候选者?
<script>
var keys = {'ONE': 'one'};
//causes error:
//var obj1 = {keys.ONE: 'value1'};
//var obj1 = {keys['ONE']: 'value1'};
//works
var obj1 = {};
obj1[keys.ONE] = 'value1';
//also works
var key_one = keys.ONE;
var obj2 = {key_one: 'value1'};
</script>
Run Code Online (Sandbox Code Playgroud) 如果我有这个JS对象文字:
var foo = {
Sussy: 4,
Billy: 5,
Jimmy: 2,
Sally: 1
};
Run Code Online (Sandbox Code Playgroud)
如何创建新的已排序对象文字:
var bar = {
Sally: 1,
Jimmy: 2,
Sussy: 4,
Billy: 5
};
Run Code Online (Sandbox Code Playgroud) var something = {
wtf: null,
omg: null
};
Run Code Online (Sandbox Code Playgroud)
自从我上次编程以来,我的JavaScript知识仍然非常不完整,但我想我现在已经重新学习了大部分知识.除此之外.我记不起以前见过这个.它是什么?我在哪里可以了解更多相关信息?
我试图让我的Node.js对象投射事件.现在,如果我创建"静态"对象并实例化它们,这不是问题,但是当我的对象没有静态爷爷时,如何使用对象文字符号创建对象时如何执行此操作?
我习惯编写ExtJS语法,所以我更喜欢对象文字中的所有内容.
// var EventEmitter = require('events').EventEmitter; // How where when?
myObject = {
myFunction: function() {
console.log('foo');
},
urFunction: function() {
console.log('bar');
}
};
Run Code Online (Sandbox Code Playgroud)
这是一个对象.它没有构造函数,因为不需要更多实例.
现在我如何允许myObject发出事件?
我已经尝试过并尝试调整代码,但是如果不将我的对象重写为带有类似构造函数的表单,我就无法工作:
var EventEmitter = require('events').EventEmitter;
var util = require('util');
function myClass() {
EventEmitter.call(this);
myFunction: function() {
this.emit('foo');
},
urFunction: function() {
this.emit('bar');
}
};
myClass.prototype = Object.create(EventEmitter.prototype);
// or // util.inherits(myClass, EventEmitter);
var myObject = new myClass; // Shouldn't …Run Code Online (Sandbox Code Playgroud) 我的术语有点偏,所以请在必要时随意纠正.我想重载javascript和'基类'中的函数,以利用重载方法以及继承类来访问基类方法.到目前为止,我想出了一个(工作)混合jquery.extend()和对象文字,但这看起来并不漂亮.我想知道是否有更好的方法(可以使用jquery).
var Base = new function(args, m) {
$.extend(this, m);
var self = this;
this.bar = function() {
self.foo();
}
this.foo = function() {
self.blah();
}
this.dosomething = function() {}
};
var Child = function(arg1) {
$.extend(this, new Base(args, {
blah: function() {
self.dosomething()
}
}));
}
Run Code Online (Sandbox Code Playgroud) 为什么这段代码有效......
var message = {
texts: {
text1: 'Hello',
text2: 'World'
},
greet: function() {
console.log(this.texts.text1 + ' ' + this.texts.text2 + '!');
}
}
message.greet();
Run Code Online (Sandbox Code Playgroud)
......但这不是吗?
var message = {
texts: {
text1: 'Hello',
text2: 'World'
},
both: this.texts.text1 + ' ' + this.texts.text2 + '!',
greet: function() {
console.log(this.both);
}
}
message.greet();
Run Code Online (Sandbox Code Playgroud)
它给了我"两个都没有定义"的错误.我在这里错过了什么?出了点问题this.both?对于对象文字,我总是新手
object-literal ×10
javascript ×9
node.js ×2
oop ×2
converter ×1
eclipse ×1
eventemitter ×1
events ×1
jquery ×1
json ×1
object ×1
overloading ×1
parsing ×1
php ×1
python ×1
scala ×1
singleton ×1
sorting ×1
vjet ×1