我正在查看Vows文档,并在几个地方使用语法
var myVar = new(MyFunction);
Run Code Online (Sandbox Code Playgroud)
例如
var promise = new(events.EventEmitter);
Run Code Online (Sandbox Code Playgroud)
我熟悉new MyFunction()并且new MyFunction(是的,我已经读过这个问题).但上面的语法对我来说是新的 - 它看起来像一个函数调用,虽然我怀疑它只是new MyFunction添加了一些括号.这些使用方式有什么区别new吗?如果没有,使用其中一个是否有任何好的理由?我原以为new MyFunction()是最清晰的.
如果这是重复的道歉 - 我搜索但找不到它.
在一些文章中,我看到以下语句在JavaScript中创建新对象:
var myObject = new Object;
Run Code Online (Sandbox Code Playgroud)
在某些地方:
var myObject = new Object();
Run Code Online (Sandbox Code Playgroud)
在两个陈述之间有什么区别,或者一个只是简写?
如果我在Firefox上运行以下代码,我会收到一个错误:
new Number.toString;
Run Code Online (Sandbox Code Playgroud)
但根据MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence new Number应首先进行评估.所以表格我认为不正确.
我们来看看MSDN:http://msdn.microsoft.com/en-us/library/z3ks45k7(v = vs.94).aspx.在表格上方写道,操作员从左到右进行评估.但:
a=1;
b=a=2;
Run Code Online (Sandbox Code Playgroud)
现在b具有值2,表示从右到左的评估.所以这个优先表也不正确.
谁能给我一张正确的桌子?
我们有一个 Node.js 小部件,可以像这样导出:
module.exports = ourWidget;
然后我将其导入到我们的 server.js 中,如下所示:
var ourWidget = require('./ourWidget');
var ow = new ourWidget;
Run Code Online (Sandbox Code Playgroud)
这按预期工作,但是可以在一行中完成吗?例如:
var ow = new (require('./ourWidget'));
Run Code Online (Sandbox Code Playgroud)
这不起作用,我也尝试过:
var ow = new (require('./ourWidget')());
两者都类似于这个问题中的代码: How does require work with new operator in node.js? ,但是当我尝试运行代码时,两者都失败了。
想想这个问题
function F(){}; //This is a Constructor function
Run Code Online (Sandbox Code Playgroud)
谁能告诉我两者之间有什么不同
var myInstance = new F;
Run Code Online (Sandbox Code Playgroud)
和
var myInstance = new F();
Run Code Online (Sandbox Code Playgroud)
?无论如何,新的关键字执行后立即执行函数?
javascript constructor instance new-operator javascript-objects
可能重复:
new MyObject(); vs new MyObject;
JavaScript中的新Object和新Object()之间有什么区别
有什么区别,
new ClassName;
Run Code Online (Sandbox Code Playgroud)
和
new ClassName();
Run Code Online (Sandbox Code Playgroud)
?
他们有相同的结果吗?
我试图在没有首次使用jQuery的情况下向模块添加ajax方法.我在我的方法上遇到以下错误.jax():Uncaught InvalidStateError:无法在'XMLHttpRequest'上执行'send':对象的状态必须是OPENED.
我不知道如何解决这个问题.这是我的模块和一些简单的HTML.
var Test = (function (el) {
function InnerTest () {
this.el = el;
//Capital letters indicate a constant that should not change.
this.PARA = 'p'
this.init();
};
InnerTest.prototype.init = function () {
this
.createChildren()
.runIt()
.jax();
};
InnerTest.prototype.createChildren = function () {
this.para = this.el.querySelectorAll(this.PARA);
return this;
};
InnerTest.prototype.runIt = function () {
var len = this.para.length;
for (var i = 0, item; item = this.para[i]; i++) {
//test if browser supports the classList …Run Code Online (Sandbox Code Playgroud) 我正在使用gulp和gulp-uglify来缩小我的javascript代码.
吞
var uglify= require('gulp-uglify');
gulp.task('javascript', function() {
return gulp.src('./scripts/*.js')
.pipe(uglify())
.pipe(gulp.dest('./'));
});
Run Code Online (Sandbox Code Playgroud)
原始的javascript
var Site = Site || {};
Site.Code = {
obj: new ThirdPartyObject(),
init: function() {
obj.thirdPartyMethod();
}
};
Run Code Online (Sandbox Code Playgroud)
缩小的javascript
var Site = Site || {};
Site.Code = {obj: new ThirdPartyObject,init: function() {
obj.thirdPartyMethod()
}};
Run Code Online (Sandbox Code Playgroud)
缩小器正在删除括号obj: new ThirdPartyObject,因此当我拨打电话时我的代码会中断obj.thirPartyMethod().
我怎样才能解决这个问题?
javascript ×8
new-operator ×2
ajax ×1
constructor ×1
gulp ×1
gulp-uglify ×1
instance ×1
node.js ×1
operators ×1
require ×1
syntax ×1