关于js面向对象的公有属性与私有属性的设置方法
2018-04-16 17:29
295 查看
先来看一段代码:
function Public(name, age) { this.name = name this.age = age } Public.prototype = ({ who: function () { console.log(this.name) }, old: function () { console.log(this.age) } }) var Public = new Public('Tony', 30); Public.who() Public.old()
该段代码显示结果为:
公有属性是指在对象外可以访问到对象内的某个属性,如果你不想别人随意访问你写的对象的属性或者避免造成污染你可使用私有属性,设置私有属性的方法如下:
function Private(name, age) { var name = name var age = age var who = function () { console.log(name) } var old = function () { console.log(age) } this.init = function () { who() old() } } var Private = new Private('Tony', 30) Private.init() Private.who() Private.old()
显示结果为:
私有属性只在函数内部可以访问,外部强行访问则会报错,这样设置可以使得使用对象的人只能使用对象,而不知道对象里面的而属性。另外,当你使用this来设置属性时需要注意,看下面一段代码:
function Private(name,age) { this.name=name this.age=age var who=function () { console.log(this.name) } var old=function () { console.log(this.age) } this.init=function(){ who() old() } } var Private=new Private('Tony',30) Private.init()
显示结果为:
第二个值为undefined,解决方法很简单,如下:
function Private(name,age) { this.name=name this.age=age var that=this var who=function () { console.log(that.name) } var old=function () { console.log(that.age) } this.init=function(){ who() old() } } var Private=new Private('Tony',30) Private.init()
阅读更多
相关文章推荐
- js面向对象之公有、私有、静态属性和方法详解
- js面向对象之公有、私有 、静态方法和属性,以及特权方法
- js面向对象的公有、私有属性和方法
- js面向对象之公有、私有、静态属性和方法详解
- js面向对象之公有、私有、静态属性和方法详解
- js面向对象的公有、私有属性和方法
- js面向对象之公有、私有、静态属性和方法详解
- js面向对象的例子(私有/公有/特权方法)-2
- js--属性和方法(私有/公有)
- JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
- JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
- JS实现类的公有、私有、静态方法/属性
- js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性的区别
- js公有、私有、静态属性和方法的区别
- js--属性和方法(私有/公有)
- JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
- js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性的区别
- js公有、私有、静态属性和方法
- js公有、私有、静态属性和方法的区别
- js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性