在javascript中,一般是没有公共属性和私有属性之分的,只有全局变量(全局属性)和局部变量以及对象属性。但是程序员可以通过一定的技巧来实现面向对象语言的功能。下面清风小编就来介绍这几种属性(变量)

javascript各种属性详解[图]图片1

全局变量也叫全局属性

/*1.通过var关键字声明。这种声明方式只能在全局作用域内,不能在函数块内部*/vara = '';/*2.直接给未声明的变量赋值,这种方式在任何情况都有效。不过,一般程序员都
应当极力避免这种情况。这种隐士的声明一个全局属性是很容易出错的*/a= '';/*3.通过window对象,这种方式可以在任何地方使用。如果需要定义一个全局属性,
我推荐使用这种。*/window.a= 'wname';/*4.用this。前提是要保证this是指向window,不过这是一种在意外情况下才会发生
的。*/functionx(){this.a ='aname';}
x();/*总结:以上4种情况可以分为两大类。第一种和后面3种。第一类必须是在全局作用域类,
也是常用的方式;第二类可以不在全局作用域内声明,除了第3种,其他都应该避免使用。
还有,第一类是不可以使用delete来删除的,第二类则可以*/vara = 'ss';deletea//falsewindow.a= '33'deletea//true;

 局部变量

/*在js中,只有函数才产生作用域。所以局部变量是在函数内部声明*/function x(){//a就是局部变量,从外部无法访问和修改。vara ='ws';//但是我们可以返回这个局部变量给外部使用。returna;
}//很少情况下可以在外部修改局部变量。下面是一种function foo(){varo = {name:'we'};returnfunction(){returno;
    };

}varf=foo();varobj =f();

obj.name='ws';

f();//{name: 'ws'}.即当闭包返回一个对象时,这个对象在外部是可能被修改的