PDA

View Full Version : صدا زدن یک کلاس به طور داینامیک



zamanphp
سه شنبه 29 دی 1388, 09:04 صبح
با سلام
در شرایطی مجبورم یک کلاس که آرگومان سازنده آن یک آبجکت هست رو به طور داینامیک صدا بزنم
ولی متاسفانه بعد از صدا زندن کلاس آن آبجکت به عنوان یک رشته به کلاس فهمانده می شود
چیکار باید بکنم :
مثال :

<script type="text/javascript" src="mootools-1.2.4-core.js"></script>
<script>
var myclass = new Class({
initialize: function(options){
alert(options.name);
}
});

callClass = new myclass({'name' : 'zamanphp'});//output : zamanphp
eval('new myclass("' + {'name' : 'zamanphp'} + '")');//output : undefined
</script>

eAmin
سه شنبه 29 دی 1388, 20:31 عصر
سلام.

راستش من درست منظورتون رو متوجه نشدم، ولی اگر با eval مشکل دارید، خب این طبیعی هست، آرگومان eval حتما باید از نوع string باشه، ولی شما در بین string از نوع object استفاده کردید، و چون تابع eval نمی تونه object رو پردازش کنه، به این مشکل بر می خورید.
این کد درست اجرا می شه:

eval('new myclass({"name":"zamanphp"})');//output : zamanphp

نمی دونم، شاید بنده هنوز متوجه منظور شما نشدم.

zamanphp
شنبه 03 بهمن 1388, 08:58 صبح
ممنون دوست عزیز ، من همان روز بعد از 1 ساعت سرروکله زدن بالاخره حلش کردم : اینم نتیجه :

var myclass = new Class({
initialize: function(options){
alert(options.name);
}
});

var person = new Object();
person.name = 'zamanphp';
person.age = 12;

callClass = new myclass(person);//output : zamanphp
eval('new myclass(' + 'person' + ')');//output : andy