صدا زدن یک کلاس به طور داینامیک
با سلام
در شرایطی مجبورم یک کلاس که آرگومان سازنده آن یک آبجکت هست رو به طور داینامیک صدا بزنم
ولی متاسفانه بعد از صدا زندن کلاس آن آبجکت به عنوان یک رشته به کلاس فهمانده می شود
چیکار باید بکنم :
مثال :
<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>
نقل قول: صدا زدن یک کلاس به طور داینامیک
سلام.
راستش من درست منظورتون رو متوجه نشدم، ولی اگر با eval مشکل دارید، خب این طبیعی هست، آرگومان eval حتما باید از نوع string باشه، ولی شما در بین string از نوع object استفاده کردید، و چون تابع eval نمی تونه object رو پردازش کنه، به این مشکل بر می خورید.
این کد درست اجرا می شه:
eval('new myclass({"name":"zamanphp"})');//output : zamanphp
نمی دونم، شاید بنده هنوز متوجه منظور شما نشدم.
نقل قول: صدا زدن یک کلاس به طور داینامیک
ممنون دوست عزیز ، من همان روز بعد از 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