ক্লাসে কোনও ক্রিয়াকলাপের আগে "get" কীওয়ার্ডটি কী?


115

getএই ES6 শ্রেণিতে কী বোঝায়? আমি এই ফাংশনটি কীভাবে উল্লেখ করব? আমার এটি কীভাবে ব্যবহার করা উচিত?

class Polygon {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }

  get area() {
    return this.calcArea()
  }

  calcArea() {
    return this.height * this.width;
  }
}

5
এটি সম্ভবত কোনও গেটর কিন্তু কোনও শ্রেণীর ভিতরে কোনও বস্তুর পরিবর্তে। এটি সত্যিই ES6- নির্দিষ্ট নয়।
ব্যবহারকারী4642212

@ Xufox আপনি ইএস 6 নির্দিষ্ট নয় এর অর্থ কীভাবে?
কিথ নিকোলাস

4
@ কিথনিচোলাস: এটি ইএস 5 তে একই কাজ করেছে।
বার্গি

ES5 সাল থেকে কিথনিচোলস getters বিদ্যমান, আমি মনে করি। এখানে ES6 কেবলমাত্র জিনিসটি classসিনট্যাক্স, তবে গেটার্স নতুন কিছু নয়।
ব্যবহারকারী4642212

উত্তর:


117

এর অর্থ ফাংশনটি কোনও সম্পত্তির প্রাপ্তি।

এটি ব্যবহার করতে, কেবল অন্য কোনও সম্পত্তি হিসাবে এটির নামটি ব্যবহার করুন:

'use strict'
class Polygon {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }

  get area() {
    return this.calcArea()
  }

  calcArea() {
    return this.height * this.width;
  }
}

var p = new Polygon(10, 20);

alert(p.area);


4
ক্লাসগুলি স্পষ্ট মোড বিটিডব্লিউতে অন্তর্ভুক্ত। ecma-international.org/ecma-262/6.0/#sec-strict-mode-code
কিট সুন্দে

4
@ কিটসুন্ডে - কমপক্ষে আমার ব্রাউজারে (ক্রোম, উইন 7), এই বিবৃতি ব্যতীত আমি কাজ করার নমুনার পরিবর্তে কনসোল ত্রুটি পেয়েছি। এবং এটি "উত্তরটির" অংশ নয়, অনেকটা "রান কোড স্নিপেট" বোতামের মতো নয়।
অমিত

5
আপনি কি শুধু কল করতে পারবেন না p. calcArea? যদি না হয় তবে কেন?
ksav

11
প্রাপ্ত / সেট কীওয়ার্ডগুলি কি কেবল সিনট্যাকটিকাল চিনি - যেহেতু Polygon.calcArea () এ কল করাও একজন প্রাপ্তি হিসাবে কাজ করবে?
ক্রেগ ও কার্টিস

4
সুতরাং ফাংশন পেতে getকীওয়ার্ডের প্যারামিটার থাকতে পারে না?
jay1234

49

সারসংক্ষেপ:

getশব্দ একটি ফাংশন একটি বস্তু সম্পত্তি বাঁধে হবে। যখন এই সম্পত্তিটির সন্ধান করা হবে এখন গিটার ফাংশন বলা হয়। গিটার ফাংশনের রিটার্ন মান তারপরে কোন সম্পত্তিটি ফিরে আসে তা নির্ধারণ করে।

উদাহরণ:

const person = {
    firstName: 'Willem',
    lastName: 'Veen',
    get fullName() {
        return `${this.firstName} ${this.lastName}`;
    }

}

console.log(person.fullName);
// When the fullname property gets looked up
// the getter function gets executed and its
// returned value will be the value of fullname


4
ব্যবহারিক উদাহরণের জন্য থাম্বস আপ!
নিকেত পাঠক

9
আমি মনে করি এটি আরও সহজ করে তুলতে পারি। 'গেট' আপনাকে শ্রেণিক পদ্ধতির চিকিত্সা করতে দেয়, যেন এটি কোনও কোনও বস্তুর সাধারণ সম্পত্তি। আপনি যদি 'পান' ছেড়ে যান তবে আপনি কেবল .area এর পরিবর্তে .area () কল করে মানটি অ্যাক্সেস করতে পারবেন
দ্বি ব্যাংকটি

22

এটি গিটার, ওও জাভাস্ক্রিপ্টের অবজেক্ট এবং ক্লাসগুলির মতো। এর জন্য এমডিএন ডক্স থেকে get:

getসিনট্যাক্স একটি ফাংশন যে যখন যে সম্পত্তি তাকিয়ে বলা হবে একটি বস্তু সম্পত্তি binds।


0

বা আরও সহজ উপায়ে এটি কেবল "" () "ব্যবহারকারীর প্রয়োজন ছাড়াই ফাংশনটির নাম টাইপ করে ফাংশনটি কল করে

উপরের দুটি ফাংশন হ'ল person.fullName () এবং person.fullName এ সমান মনোযোগ

const person = {
    firstName: 'Willem',
    lastName: 'Veen',
    fullName() {
        return `${this.firstName} ${this.lastName}`;
    }

}

console.log(person.fullName());

const person = {
    firstName: 'Willem',
    lastName: 'Veen',
    get fullName() {
        return `${this.firstName} ${this.lastName}`;
    }

}

console.log(person.fullName);

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.