JavaScript defines private method descriptions (private methods) _javascript tips

Source: Internet
Author: User
Tags variable scope

Once thought in the JavaScript world, all methods are public, can not really technically define a private method, today again found: I was wrong!

Copy Code code as follows:

var person = function (name,sex) {
THIS.name = name;
This.sex = sex;
var _privatevariable = "";//Private variable
The method defined in the constructor, that is, a private method
function Privatemethod () {
_privatevariable = "Private Value";
Alert ("Private method is called!") Private member Value: "+ _privatevariable";
}
Privatemethod (); Private methods can be invoked inside the constructor
}

Person.prototype.sayHello = function () {
Alert ("Name:" + this.name + ", Sex:" + this.sex);
}

var p = new Person ("Yang over" under the banyan Tree, "male");
P.sayhello ();

P.privatemethod ()//here will be an error, private method cannot be called by the instance
alert (p._privatevariable);//display: undefined

Description: A function defined in a class's constructor is a private method, whereas a variable declared in a constructor with Var is also a private variable. (However, the notion of private members in a strongly typed language like C # is different, such as not being invoked in a method other than a constructor)

Similarly, we can implement a package similar to the Set,get property

Copy Code code as follows:

var person = function () {
var salary = 0.0;

This.setsalary = function (value) {
salary = value;
}

This.getsalary = function () {
return salary;
}
}

var p = new person ();

P.setsalary (1000);
Alert (P.getsalary ());//Return 1000
alert (p.salary);/return undefined

Note: "Variable scope" in JS, "function call context (this)," closure "," prototype chain "These concepts are indeed worth a little time to understand, these lines across the past, JS novice (such as the flow of our own) level of confidence will also be small a new level.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.