javascript属性の詳細解
11006 ワード
jsには、パブリック属性とプライベート属性の区別がなく、グローバル変数(グローバル属性)とローカル変数、およびオブジェクト属性のみが含まれています.しかし、プログラマは一定のテクニックで対象言語に対応する機能を実現することができます.これらの属性(変数)を紹介します.
グローバル変数もグローバル属性と呼びます.
グローバル変数もグローバル属性と呼びます.
/* 1. var 。 , */
var a = '';
/*2. , 。 ,
。 */
a = '';
/*3. window , 。 ,
。*/
window.a = 'wname' ;
/*4. this。 this window,
。*/
function x(){ this.a ='aname';}
x();
/* : 4 。 3 。 ,
; , 3 , 。
, delete , */
var a = 'ss';
delete a // false
window.a = '33'
delete a // true;
ローカル変数/* js , 。 */
function x(){
// a , 。
var a = 'ws';
// 。
return a;
}
// 。
function foo(){
var o = {name: 'we'};
return function(){
return o;
};
}
var f= foo();
var obj = f();
obj.name = 'ws';
f(); // {name: 'ws'}. ,
オブジェクトの属性//1.
var o = {}
//
o.name =' ';
o['a'] = ' '
//
o.method = function(){};
//2.
var o = {
'name': ' ',
'a': ' ',
'method': function(){
}
}
// ,
//3. new
function(name){
this.name = name
}
静的な属性/* java , 【 . 】 , , 。
, 。 js , 。
( )*/
function Person(){
}
//
Person.a = 'ws';
//
var p = new Person();
p.a; // undefined
プライベート属性/* js , 。 , ( ) */
function Person (){
var name = ' ';
this.getName = function(){
return name;
}
this.setName = function(newName){
name = newName;
}
}
var p = new Person();
p.getName();
p.setName(' ');
p.getName(); //
/* , getName、setName name,
name 。 , name ,
*/
//
function Person(){
var info = {name: ' '}
this.getInfo = function(){
return info;
}
}
var p = new Person();
var pInfo = p.getInfo();// { name=" "}
pInfo.age = 32; // p
p.getInfo(); // { name=" ", age=32}。 。
/* , , , 。
*/
function Person(){
var info = {name: ' '}
this.getInfo = function(){
// info , for in
return {name: info.name};
}
}
最新のjs仕様では、get、set、defineProperty、definePropertiesによってオブジェクトの属性を定義することもできます.これらはとても強力な方法です.また今度紹介します.