For this Question: Create a <code>Product</code> constructor function which should take three arguments: <code>name</code>, <code>price</code>, and <code>manufacturer</code>. These arguments should be used to set the initial values of the name, price, and manufacturer properties respectively. 
<ol>

<li>Add a <code>getProductDetails</code> method that returns the string<code>"Name: {name}, Price: {price}, Manufacturer: {manufacturer}"</code> where {name},{price},{manufacturer} are the corresponding properties of the object</li>

<li> Now, create a private property, <code>tax</code> which will store the tax percentage. This property should not be directly accessible by the objects created using the <code>Product</code> constructor.

<li> Create a method <code>setTax</code>, which will take an argument <code>amount</code>, and assign its value to the <code>tax</code>. Create another method <code>getTax</code> method, which should return the <code>tax</code></li>

<li>Create a private method <code>calculateTotalPrice</code> which would return the total price which can be calculated as <code>price + price*(tax/100)</code></li>

<li>Create a method <code>getTotalPrice</code> which would call <code>calculateTotalPrice</code> function, and return the value which <code>calculateTotalPrice</code> returned</li>

<li>Create a method <code>deleteMethod</code> which would take <code>methodName</code> as argument and should delete the <code>methodName</code>  function of the constructor.</li>

<li>All functions other than <code>calculateTotalPrice</code> should be accessible to the objects created using the <code>Product</code> constructor</li>

</ol>The <code>Product</code> constructor should take three arguments: <code>name</code> , <code>price</code>, and <code>manufacturer</code>.
The <code>setTax()</code> method within the constructor should take <code>amount</code> as an argument.
The <code>deleteMethod()</code> function within the constructor should take <code>methodName</code> as an argument.
Providing the functions with the input is handled internally.

Example: 
Bulb,1000,Philips,10<code>getProductDetails</code> method should return string <code>"Name: name, Price: price, Manufacturer: manufacturer"</code>
 <code>getTax</code> method should return the <code>tax</code>
 <code>setTax</code> method should set the value of <code>tax</code> and need not return any value
 <code>getTotalPrice</code> should return the total price which can be calculated by calling the <code>calculateTotalPrice</code> function
<code>calculateTotalPrice</code> function should return the total price calculated as <code>price + price*(tax/100)</code>
<code>deleteMethod(methodName)</code> should delete <code>methodName</code> function and need not return any valueconst arg1 = "Bulb";
const arg2 = "1000";
const arg3 = "Philips";
const arg4 = "5";

const myProduct = new Product(arg1, parseInt(arg2), arg3);
myProduct.setTax(parseInt(arg4)); 
console.log(myProduct.getProductDetails());  //prints "Name: Bulb, Price: 1000, Manufacturer: Philips"
console.log(myProduct.getTax()); //prints 5
console.log(myProduct.tax); //prints "undefined" as <code>tax</code> is private variable 
console.log(myProduct.getTotalPrice()); //prints 1050
console.log(myProduct.calculateTotalPrice); //prints "undefined" as <code>calculateTotalPrice</code> is a private function
myProduct.deleteMethod("getProductDetails")
console.log(myProduct.getProductDetails);  //prints "undefined" as <code>getProductDetails</code> function is deleted, I have written this Solution Code: function Product(name, price, manufacturer) {

  let tax;

  this.name = name;
  this.price = price;
  this.manufacturer = manufacturer;

  this.getProductDetails = function() {
    return `Name: ${this.name}, Price: ${this.price}, Manufacturer: ${this.manufacturer}`;
  };

  this.setTax = function(amount) {
    tax = amount;
  };

  this.getTax = function() {
    return tax;
  };

  const calculateTotalPrice = function() {
    return this.price + (this.price * (tax / 100));
  };
  
  this.getTotalPrice = function() {
    return calculateTotalPrice.bind(this)();
  };
  
  this.deleteMethod = function(methodName){
       delete this[methodName];
  }
}, In this Programming Language: JavaScript, Now tell me if this Code is compilable or not?