我可以使用.prototype访问javascript函数的原型对象,但是当我不能在javascript对象文本上使用.prototype时。请让我知道为什么这种行为不一致。
var add = function (a, b) { return a + b; };
var s={name:'Pradeep'}
console.log('Function\'s prototype >> '+add.prototype)
console.log('Object\'s prototype >> '+ s.
我非常喜欢JavaScript的ECMAScript5语法,主要是因为在我看来,正是它使它在遵循相对传统的编程风格和语法的其他面向对象编程语言中独树一帜。
不确定ECMAScript5语法在ECMAScript6中是否仍然受支持,即它是否向后兼容。但是,是否有理由替换语法,特别是在JavaScript中使用基于原型的方法来定义类(更不用说继承,等等)变成更传统的编程语言(如大多数面向对象的编程语言)?
为了举例说明语法变化,按照ECMAScript5,您可以在JavaScript中定义person类:
// ES5 class definition of a Person
function P
任何JavaScript对象都从对象继承其属性(除非您执行类似于Object.create(null)的操作)。那么,为什么不可能出现以下情况呢?
a={x:1,y:2}
Object {x: 1, y: 2}
Object.prototype.isPrototypeOf(a)
true
a.toString()
"[object Object]"//YES, BECAUSE a INHERITS OBJECT toString() PROPERTY
a.keys()
TypeError: undefined is not a function//