在实例化类/对象之后,javascript如何调用新添加的方法?

n8他

请帮助我了解这是怎么回事...

实例化myObject之后,如何将新方法添加到原始类/对象构造函数中并获得两个结果?

我希望我必须将mathX实例化为myObject2才能使其工作...

// make class/object with properties & methods
function mathX(num1, num2) {
    this.factor = 10;
    this.num1 = num1;
    this.num2 = num2;
    this.multiplySum = function() {
        return (this.num1 + this.num2) * this.factor;
    }
}

// instantiate class/object with properties & methods
var myObject = new mathX(5, 5);

document.write("multiplySum result = " + myObject.multiplySum() + "<br>");

// add new method to class/object AFTER instantiation
mathX.prototype.sumAll = function() {
    return this.num1 + this.num2 + this.factor;
}

// immediately use new method on previously instantiated class/object
document.write("sumAll result = " + myObject.sumAll() + "<br>");

// how is this possible?  Shouldn't this fail?

// How does javasript call a newly added method after instantiation of the class/object occured?

i

之所以有效,是因为继承是“实时的”。

当您创建从另一个对象B继承的对象A时,A当时不在本地存储B的属性的副本。相反,它仅在[[Prototype]]中引用B。

然后,当您尝试访问A上的某个属性,但没有使用该名称的自己的属性时,将改为查询B。

因此,当您更改一个对象时,可能会影响从该对象继承的所有对象。

var obj = {};
console.log(obj.foo); // undefined
Object.prototype.foo = "bar";
console.log(obj.foo); // "bar"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

调用remove()之后如何重新添加元素?

PHP - 从我实例化对象的类调用方法

将“对象”实例化到其他类并调用方法

如何从对象的父类的方法内部获取对象的调用实例?

如何在实例化类对象时调用默认函数

A类实例化B类实例。ClassB的实例如何调用A类的方法?

ILGenerator实例化对象并调用实例方法

如何从 PHP 中的动态实例化类调用方法?

Javascript:如何获取实例化某个对象的类?

通过对象实例调用类方法

从类调用方法而不实例化它

如何在运行时在Java中创建新添加的类的实例

如何为未实例化的对象实例化类函数?

如何对实例化的模拟类对象断言

如何使用 Javascript 将实例添加到实例化对象?

在JavaScript类中调用父方法,但stll可以访问对象实例内部的原型方法吗?

C#Unity我们如何解析/实例化多级类方法调用的类

实例化另一个类后,类如何调用方法?

FabricJS如何重新添加字符串化的json对象(反序列化)

如何禁止在实例上调用类方法?

如何使实例类需要方法调用?

如何调用父类的实例方法?

装饰器调用没有类实例化的类方法?

在JavaScript对象实例中添加“ toJSON”方法会导致最大调用堆栈错误

从类对象实例化类

对象方法调用可以与对象实例化同时进行吗?

如何将类的实例添加到JavaScript对象中?

Javascript:实例化对象数组的最佳方法

如何从非活动类实例化活动类的对象?