相关疑难解决方法(0)

每个对象都是一个函数,每个函数都是对象 - 哪个是正确的?

我正在读这个链接JavaScript_syntax

这似乎是循环的 - 每个函数都是一个Object,每个Object本身都是一个函数.哪个是原子的?有人能以更好的方式解释吗?

javascript

45
推荐指数
4
解决办法
2万
查看次数

对象和功能非常混乱

Object instanceof Object
true
Object instanceof Function
true
Function instanceof Object
true
Function instanceof Function
true
Run Code Online (Sandbox Code Playgroud)

所以如果Function是一个Object而Object是一个函数怎么来的呢

Function === Object并且Function == Object都是假的?

我知道检查对象的实例与比较不一样.所以这里的问题是如果两个对象(实际上是类型)是彼此的实例的情况下的模糊性,那么类型不应该相同吗?

注意:Object不是Number或Array的实例,只是Function的一个实例.

javascript

13
推荐指数
2
解决办法
782
查看次数

为什么JavaScript中的函数既是构造函数又是对象?

我最近一直在做很多研究,但还没有得到一个非常好的答案.我在某处读到当JavaScript引擎遇到函数语句时会创建一个新的Function()对象,这会让我相信它可能是一个对象的子对象(从而成为一个对象).所以我给Douglas Crockford发了电子邮件,答案是:

不完全是因为函数语句不调用编译器.

但它产生了类似的结果.

另外,据我所知,除非已将实例化为新对象,否则不能在函数构造函数上调用成员.所以这不起作用:

function myFunction(){
    this.myProperty = "Am I an object!";
}
myFunction.myProperty; // myFunction is not a function
myFunction().myProperty; // myFunction has no properties
Run Code Online (Sandbox Code Playgroud)

但是,这将有效:

function myFunction(){
    this.myProperty = "Am I an object!";
}
var myFunctionVar = new myFunction();
myFunctionVar.myProperty;
Run Code Online (Sandbox Code Playgroud)

这只是一个语义问题......在整个编程世界中,对象何时真正成为一个对象,以及它如何映射到JavaScript?

javascript constructor object

5
推荐指数
3
解决办法
3986
查看次数

如何从Scala.js调用Javascript apply()?

如何apply()从Scala.js代码调用Javascript对象上定义的函数?

显而易见的解决方案不起作用,因为applyScala.JS(?)总是将其编译到其父对象的函数调用中:

var test = {
  apply: function(idx) {...},
  apple: function(idx) {...}
}
Run Code Online (Sandbox Code Playgroud)
trait Test extends js.Object {
  def apple(idx: Int) : Int = ???
  def apply(idx: Int) : Int = ???
}

val test = js.Dynamic.global.test.asInstanceOf[Test]

test.apple(1) // works, of course

test.apply(1) // does not work (seems to be compiled into the call test(1) ?)

js.Dynamic.global.test.apply(1) // does not work either
Run Code Online (Sandbox Code Playgroud)

scala.js

5
推荐指数
1
解决办法
436
查看次数

如果函数是javascript中的对象,为什么function.constructor指向Function而不是Object?

当像这样从窗口对象创建以下函数时,

         function userInfo() {};
Run Code Online (Sandbox Code Playgroud)

由于函数是对象,userInfo.constructor 怎么会显示函数而不是对象?

使用以下内容时,它甚至会显示 Function 而不是 Object,

         Function.constructor
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
1
解决办法
86
查看次数

JavaScript功能是"功能"还是"对象"或两者兼而有之?

我试图了解Javascript函数的行为方式.它是一个功能还是一个对象或两者兼而有之?

javascript

4
推荐指数
1
解决办法
324
查看次数

功能真的是一个对象

我是一名自学成才的网络开发人员,我仍然试图掌握一些JavaScript基础知识.以下是从Douglas Crockford的Good Parts中提取的一些引用.

"JavaScript中的函数是对象"

"在JavaScript中,数组是对象,函数是对象,正则表达式是对象,当然,对象是对象"

"每个对象都链接到一个原型对象,它可以从中继承属性"(即构造函数,toString,...)

如果Function是Object,那么为什么

 console.log(typeof Function);  // function 
Run Code Online (Sandbox Code Playgroud)

它的类型是函数而不是对象

 console.log(Object.constructor);  // Function()
Run Code Online (Sandbox Code Playgroud)

它是'父母'的构造者

 console.log(Function.constructor);  // Function()
Run Code Online (Sandbox Code Playgroud)

困惑所以构造函数实际上是一个函数?

 console.log(typeof Function.prototype); // Function
Run Code Online (Sandbox Code Playgroud)

它的原型类型是一个函数而不是一个对象?我认为它继承自Object

这些问题的答案将极大地帮助我理解JavaScript.

javascript function object

3
推荐指数
2
解决办法
363
查看次数

构造函数和Object之间的区别

我肯定需要对此有所了解.

有什么区别:

var MY_APP = function(){
    this.firstMethod = function(){
       //something
    };
    this.secondMethod = function(){
       //something
    };
};
Run Code Online (Sandbox Code Playgroud)

var MY_APP = {
    firstKey: function(){
       //something
    },
    secondKey: function(){
       //something
    }
};
Run Code Online (Sandbox Code Playgroud)

除了一个明显的事实,一个是一个函数,另一个是一个对象,代码流,原型,模式有什么不同......什么,我们什么时候应该使用第一个或第二个?

我在这个区域如此分散,以至于我不确定我是否正确地解释了疑问,但如果你问的话可以给出进一步的信息.

javascript constructor function object

2
推荐指数
1
解决办法
6167
查看次数

标签 统计

javascript ×7

object ×3

constructor ×2

function ×2

scala.js ×1