js物件寫法大全

2021-10-01 06:24:49 字數 3940 閱讀 9240

1.公有屬性和公有方法

function user(name,age)

user.prototype.getname = function()

var user = new user('fire子海',26);

console.log(user.getname());//output:fire子海

2.私有屬性和方法

function user(name,age)

alertage(age); //彈出26

}var user = new user('fire子海',26);

3.靜態屬性和方法

function user(){}

user.age = 26;//靜態屬性

user.myname = 'fire子海';

user.getname =function()

console.log(user.getname());//output:fire子海

4.特權方法

function user(name,age)

}var user = new user('fire子海',26);

console.log(user.getname());//output:fire子海

5.靜態類

var user = ,

getname:function()

}user.init('fire子海',26);

console.log(user.getname());//output:fire子海

6.公有方法的呼叫規則

呼叫公有方法,我們必需先例項化物件

公有方法中通過不this呼叫公有屬性和特權方法,不能使用this呼叫靜態方法和屬性,必需裁通過物件本身呼叫,即物件名。公有方法也不能呼叫私有方法

function user()

}user.eat = function(food)

user.prototype.alertage = function()

user.prototype.alertdo = function()

user.prototype.alerteat = function(food)

var user = new user();

user.alertage();//alert:26

user.alertdo();//alert:fire子海學習js

user.alerteat('速食麵')//alert:晚餐只有速食麵

7.靜態方法的呼叫規則

使用靜態方法時,無需例項化物件,便可以呼叫,物件例項不能呼叫物件的靜態方法,只能呼叫例項自身的靜態屬性和方法

function user(){}

user.age = 26;//靜態屬性

user.myname = 'fire子海';

user.getname =function()

var user = new user();

console.log(user.getname);//typeerror: user.getname is not a function

user.supper = '速食麵';

user.eat = function()

user.eat();//晚餐只有速食麵

靜態方法無法呼叫公有屬性、公有方法、私有方法、私有屬性、特權方法和原型屬性

function user()

}user.prototype.alertage = function()

user.prototype.*** = '男';//原型屬性

user.getname= function()

user.getage = function()

user.getdo = function()

this.do is not a function

this.alertage is not a function

8.特權方法的呼叫規則

特權方法通過this呼叫公有方法、公有屬性,通過物件本身呼叫靜態方法和屬性,在方法體內直接呼叫私有屬性和私有方法

function user(girlfriend)

this.myname = 'fire子海';//公有屬性

this.age = 26;

this.do = function()

this.alertage = function()

this.alertgirlfriend = function()

}user.prototype.changeage = function()

var user = new user('某某');

user.alertage();//alert:29

user.alertgirlfriend();//alert:我的女朋友某某是美女!

9.私有方法

物件的私有方法和屬性,外部是不可以訪問的,在方法的內部不是能this呼叫物件的公有方法、公有屬性、特權方法的

function user(girlfriend)

this.do = function()

this.alertage = function()

this.alertgirlfriend = function()

}user.eat = function(supper)

var user = new user('某某');

user.alertgirlfriend();

js 寫法

1,工廠方式

var obj = new object();

obj.pi = 3.14;

obj.area = function(r)

return obj;

}var c = new circle();

alert(c.area(1.0));//結果為1

2,比較正規的寫法 (建構函式的方式)

function circle(r)

//靜態變數

circle.pi = 3.14;

//原型方法

circle.prototype.area = function()

var c = new circle(3);

總結 : 無需在函式的內部重新建立物件,而使用this指代,並且函式無需明確的return

3,json寫法

var circle =

};console.log(circle.area(2)); //結果為:12.56

第三種寫法的小例項

var show = );

},change : function());

}}show.init();//注意其中this的指向問題

4,其實和第一種實質是一樣的

var circle = function(r)

circle.pi = 3.14;

circle.prototype =

}var obj = new circle(4);

5, 最後一種

var circle = new function("this.pi = 3.14;this.area = function(r)");

obj = new circle();

console.log(obj.area(4)); //結果為:50.24

其中我個人比較喜歡的寫法如下:

function circle(r)

// 靜態變數

circle.pi = 3.14;

//原型方法

circle.prototype.area = function()

var obj = new circle(4);

console.log(obj.area()); //結果為:50.24

可以看到一樣的結果,感覺這種寫法更符合我的習慣,當然js是比較自由的,只要語法沒有錯誤,你可以選擇任何一和自己喜歡的方式去實現自己想要的效果

js相容寫法

新增事件方法 addhandler function element,type,handler elseif element.attachevent else 移除之前新增的事件方法 removehandler function element,type,handler elseif element...

js基礎寫法

title layui description 經典模組化前端框架 site www.layui.com author 賢心 license lgpl 開頭的分號,意在防止與其他js檔案合併壓縮時,由於上乙個檔案沒有用分號結尾而產生問題 常見的 多了一對括號 呼叫匿名函式 function 另外一種...

js常用寫法

遍歷陣列 es5 寫法 arr.foreach function value,index 遍歷陣列es6 寫法 for let i of arr 判斷字串str是否以1開頭 str.indexof 1 0 從集合中過濾符合條件的元素 var require lodash var users var ...