简体   繁体   English

如何在Javascript中访问其他对象的私有方法(但它是同一个instanceof)

[英]How Can I Access private method of other object (but it's same instanceof) in Javascript

var a1 = new A("test")
var a2 = new A("test2")
console.log(a2.getOtherValue(a1)) // -> expected "test"
a2.setOtherValue(a1, "test3") // set another object value
console.log(a1.getValue()) // -> expected "test3"

How Can I implement this?? 我该如何实施?

You can use getter and setter methods to create a property and on add, you can mutate own value. 您可以使用getter和setter方法创建属性,并在添加时更改自己的值。 Mutating other object using current object is a bad idea. 使用当前对象来突变其他对象是一个坏主意。

Following is a sample: 以下是一个示例:

 function MyNumber(value) { var _value = value; Object.defineProperty(this, 'value', { get: function() { return _value; }, set: function(v) { if(!isNaN(v)) _value = v; } }); } MyNumber.prototype = (function() { var proto = {}; proto.add = function(o2) { if (o2 instanceof MyNumber) { this.value = this.value + o2.value; } else { throw new Error('Mismatched type. Expected an object of type MyNumber but got ' + o2.constructor.name); } } return proto; })(); var o1 = new MyNumber(10); var o2 = new MyNumber(20); o1.add(o2); console.log(o1.value); var o3 = { value: 40 } try { o1.add(o3); } catch (ex) { console.log(ex.message) } 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在javascript中访问父对象的方法? - How can I access a parent object's method in javascript? 如何从javascript中返回的对象引用私有方法? - How can i reference a private method from returned object in javascript? 如何使用javascript中同一对象内的公共方法访问私有变量? - How to access private variable using a public method within same object in javascript? 您可以使用JavaScript的私有方法访问对象定义的属性吗? - Can you access an object-defined property in a private method in JavaScript? 如何从Javascript中相同对象的方法内部访问对象的值? - How to access the value of an object from inside a method of the same object in Javascript? 如何访问其他javascript var - How can I access other javascript var 如何从 Javascript 中的另一个私有方法访问私有方法 - How to access private method from another private method in Javascript 我可以在由javascript中相同构造函数创建的其他对象上调用方法吗? - Can I call a method on other objects created by the same constructor in javascript? 如何将变量设置为对象的键,以便可以使用javascript动态访问对象? - How do I set a variable to be a object's key so I can access an object dynamically in javascript? 如何从 JavaScript 中的对象内部访问属于同一对象的属性? - How can I access properties that belong to the same object from inside the object in JavaScript?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM