ورود

View Full Version : مبتدی: سوال: تعریف کلاس



fr_sdgh
پنج شنبه 08 مرداد 1394, 23:57 عصر
سوال:
_اولین خط ، contactForm یه کلاس از مجموعه آبجکت ها هست ، در این خصوص کمی توضیح میدید. کنسول لاگ اینها رو آبجکت خروجی میده ولی تفاوت config و container با init ... چیه؟
_یکی خشگلش بگه این آرگمان چجوری مقادیرش رو جایگذاری میکنه. ممنون

سوالای بیشتری هم دارم ولی تا همینجاش هم کلی شد. ممنون :لبخندساده:


var contactForm = {

config : {
effect: 'slideToggle',
speed: 800
},

container : $('#contact'),

init : function(config){
$.extend(this.config , config);
$('<button></button>' , {
text :'click to'
}).insertAfter('article:first').on('click', this.show);
console.log(this);
},

show : function(){
var cf=contactForm , container=cf.container , config=cf.config ;
if (container.is(':hidden')) {
container[config.effect](config.speed);
cf.close.call(container);
console.log(this);
};
},

close : function(){
var config=contactForm.config;
var $this=$(this);
if($this.find('span.close').length) return ;
$('<span class="close">X</span>').prependTo(this).on('click',function(){
$this[config.effect](config.speed);
});
}
}

contactForm.init({
effect: 'slideToggle',
speed: 800
});

sinoser
دوشنبه 12 مرداد 1394, 15:59 عصر
خب این یک شی json هست در جاوا اسکریپت که متدهای جی کوئری رو هم داخلش داره پس داخل حالت JS میذارنش نه HTML :) این یک ;)
config دقت کنی باز خودش مثل contactForm هست و یک شی json هست پس نوعش میشه شی. خب به محتویات این توی جاوا اسکریپت می توی از همون روش نقطه دنباله ای دسترسی پیدا کنی (بعد این دستور اینو بزاری می بینی) :
alert(contactForm.config.effect);
container هم یک متغییر هست که مقدار خروجی $('#contact') که یک سلکتور جی کوئری هست و خروجیش یکی مدل انتخابگر که باز خودش نوعی شی هست رو می گیره پس اینم شی هست. اینو دیگه مثل config نیمشه کاریش کرد باید جی کوئری بلد باشی و بش متد بچسبونی.
init و موارد بعد هم تابع هستند. توی json اینجوری تابع تعریف می کنن. مقدارشم متونی به شکل زیر بدی و خروجی بگیری.
contactForm.init('yourValue');