如何epoch在Javascript中获取当前时间?基本上是自1970-01-01午夜以来的毫秒数.
MDN声明 Javscript中有两个操作符具有最高优先级:
foo.barnew Foo()我通常明确地将两者分开:(new Date()).toString()
但我经常看到它们两者合二为一:new Date().toString()
根据这个答案,第二种方式起作用的原因在于,当两个运算符具有相同的优先级时,它是第二个运算符的关联性.在这种情况下,成员运算符是左关联的,这意味着new Date()首先评估.
但是,如果是这样的话,为什么会new Date.toString()失败呢?毕竟new Date是只是语法糖的new Date().上述论点说它应该有用,但显然不行.
我错过了什么?
我试图从子对象调用父属性
var parentObj = {
attr1:1,
attr2:2,
childObj:{
method1:function(){
return this.attr1 * this.attr2;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我刚刚在Gmail中打开开发工具时看到了这个片段:
var GM_TIMING_END_CHUNK1=(new Date).getTime();
Run Code Online (Sandbox Code Playgroud)
我通常会期待这样的事情,因为调用没有括号的构造函数是相当罕见的(至少我从未见过它直到现在):
var GM_TIMING_END_CHUNK1=new Date().getTime();
Run Code Online (Sandbox Code Playgroud)
要么
var GM_TIMING_END_CHUNK1=Date.now(); //newer browsers
Run Code Online (Sandbox Code Playgroud)
这样做有什么好处,行为有什么不同吗?这是完全相同的字符数量,所以简洁不是一个原因.
我在Chrome控制台中运行了以下一对代码段,结果相同:
test = new function(){
var a = 1;
var b = 2;
var c = 3;
this.debugBase = function(){console.log('' + a + b + c)};
};
test
debugBase: function (){console.log('' + a + b + c)}
__proto__: Object
Run Code Online (Sandbox Code Playgroud)
与:
test2 = new (function(){
var a = 1;
var b = 2;
var c = 3;
this.debugBase = function(){console.log('' + a + b + c)};
})();
test2
debugBase: function (){console.log('' + a + b + c)}
__proto__: Object
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?函数后的括号有什么意义吗?如果没有,为什么人们把它们放在那里?
任何人都可以告诉我,在Javascript中的区别
MyClass.prototype = new Object(); //or ... = {}
Run Code Online (Sandbox Code Playgroud)
和
MyClass.prototype = Object;
Run Code Online (Sandbox Code Playgroud)
是什么?如果结果没有差异,哪一个是最佳实践方式?
我正在尝试在nuxt.js框架内使用Web Worker,但不断收到引用错误.ReferenceError: Worker is not defined.
我已经通过npm 安装了worker-loader 1.1.1并将以下规则添加到我的nuxt.config.js:
module.exports = {
build: {
extend (config, { isDev, isClient }) {
if (isDev && isClient) {
config.module.rules.push({
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /(node_modules)/
})
}
// Web Worker support
config.module.rules.push({
test: /\.worker\.js$/,
use: { loader: 'worker-loader' },
exclude: /(node_modules)/
})
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我通过nuxt build它创建一个构建,看起来就像创建了一个Web worker文件.
Asset Size
2a202b9d805e69831a05.worker.js 632 bytes [emitted]
Run Code Online (Sandbox Code Playgroud)
我在vuex模块中导入它,如下所示:
import Worker from '~/assets/js/shared/Loader.worker.js'
console.log(Worker) …Run Code Online (Sandbox Code Playgroud) 我有一个名为的javascript对象concept:
function concept() {
this.ConceptId = 0;
this.Name = "";
}
Run Code Online (Sandbox Code Playgroud)
我试图在jQuery中启动它document.ready:
$(document).ready(function() {
var concept = new concept;
});
Run Code Online (Sandbox Code Playgroud)
它返回一个错误:
未捕获的TypeError:概念不是构造函数
如果我将对象移到其中document.ready,它就可以工作了.
$(document).ready(function() {
function concept() {
this.ConceptId = 0;
this.Name = "";
}
var concept = new concept;
});
Run Code Online (Sandbox Code Playgroud)
我仍然是javascript的新手,据我所知,document.ready在DOM完成时运行.我不明白为什么它无法访问document.ready范围外定义的对象.
请参阅下面的评论
在创建对象的新实例时,下面的A和B之间有什么区别
A,使用括号
var foo = new Bar();
Run Code Online (Sandbox Code Playgroud)
B没有括号
var foo = new Bar;
Run Code Online (Sandbox Code Playgroud)
我正在使用backbone.js,其中许多示例不使用括号.另外,调用()'s'的正确术语是什么?执行?
我正在查看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 ×9
new-operator ×2
constructor ×1
datetime ×1
inheritance ×1
jquery ×1
nuxt.js ×1
parsing ×1
syntax ×1
webpack ×1