相关疑难解决方法(0)

Javascript字符串如何不是对象?

这不是一个笑话的设置,我真的在问.

Douglas Crockford喜欢说在javascript原型面向对象语言中没有必要new.

他解释说,这new只是为了让人们从基于类(即" 经典 ")的面向对象编程语言中获得某种程度的安慰:

JavaScript,我们很难new

JavaScript是一种原型语言,但它有一个new运算符,试图使它看起来有点像经典语言.这往往会使程序员感到困惑,从而导致一些有问题的编程模式.

您永远不需要new Object()在JavaScript中使用.请改用对象文字{}.

好的:

  • new
  • {}

但是后来评论者VítorDeAraújo指出这两者并不相同.他给出了一个例子,表明a string不像object:

字符串对象和字符串值不是同一个东西:

js> p = "Foo"
Foo
js> p.weight = 42
42
js> p.weight // Returns undefined

js> q = new String("Foo")
Foo
js> q.weight = 42
42
js> q.weight
42
Run Code Online (Sandbox Code Playgroud)

字符串值不能具有新属性.同样的事情对其他类型也有效.

这里发生了什么string不是一个object?我是否混淆了javascript与其他一些语言,其中一切都是对象?

javascript

36
推荐指数
1
解决办法
6802
查看次数

在JavaScript中拳击强制?

你不知道JS - 强制章节我已经读到,强制,你永远不会得到一个复杂的值,如对象或数组.拳击在准确的意义上不被视为强制.如何在引擎盖后面的JavaScript与强制不同?我真的看不出表面上的任何差异.

javascript

13
推荐指数
1
解决办法
3342
查看次数

对象和字符串原型不是已定义字符串的原型?

我试图了解 JavaScript 的基于原型的继承是如何工作的。我期待以下输出将评估为true. 为什么是这样?

var myStr = "Sample";
String.prototype.isPrototypeOf(myStr); // false
Object.prototype.isPrototypeOf(myStr); // false
Run Code Online (Sandbox Code Playgroud)

javascript inheritance prototype

5
推荐指数
2
解决办法
155
查看次数

标签 统计

javascript ×3

inheritance ×1

prototype ×1