如何获取对“实例方法”的引用;在ECMA6
How to get reference to "instance methods" in ECMA6
我需要能够序列化用ECMA6中的类声明的对象。当使用标准JavaScript获取和序列化存储在原型中的"方法"时,我可以很容易地使用toJSON
。
var Foo = function(name) {
this.name = name;
}
Foo.prototype = {
doSomething: function() {
return 1;
},
toJSON: function() {
// construct a string accessing Foo.prototype
// in order to get at functions etc. stored in prototype...
}
};
但是我如何在ECMA6中使用类声明来做到这一点?例子:
class Foo {
constructor(name) {
this.name = name;
}
doSomething() {
return 1;
}
toJSON() {
// Foo.prototype is empty. Because it hasn't been created yet?
}
}
即使在用new
操作符实例化之后,用class
创建的对象似乎有一个空原型。我错过了什么?
你的做法听起来不是个好主意;但无论如何,类方法在原型中是;它们只是不可枚举,以避免在for .. in
迭代中出现它们(也可能防止您试图做的事情变得容易做)。您必须使用Object.getOwnPropertyNames
和Object.getOwnPropertySymbols
。
相关文章:
- 从实例方法调用实例方法
- 如何在angularJS中获得对指令对象实例的引用
- Javascript:在对象实例方法上使用apply()方法失败
- 我将如何创建一个带有私有变量的实例方法
- 如何将一个单例传递给另一个对象,使该对象的所有实例都引用同一个单实例
- 用javascript在实例方法中实例化对象
- 更好的设计,以便从对象的方法引用自己的对象的属性
- 绑定实例方法与包装匿名函数
- 从充当事件处理程序的多个方法引用对象属性
- 如何在猫鼬.js子文档数组中定义实例方法
- 如何根据所选选项调用实例方法
- 如何在匿名函数中调用实例方法
- 为什么这会编译对类而不是实例的引用
- 在续集中使用实例方法
- 在 JavaScript 中,如何从更深层次的嵌套方法引用方法的返回值
- 如何将实例方法添加到帆中的所有模型.js
- 如何在 Javascript 中同时拥有静态方法和实例方法
- 将hasOwnProperty作为调用方法的直接静态引用进行调用的好处,而不是将其作为对象实例方法进行调用
- 如何引用绑定到“this”的实例方法?
- 如何获取对“实例方法”的引用;在ECMA6