js创建对象的高级模式
生活随笔
收集整理的這篇文章主要介紹了
js创建对象的高级模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
hello,安瑞萬。第一次寫博客,心情很激動啊。要是說的不好,你來打我啊?反正你也不知道我家地址。好了,不扯了。進入正題:要是寫的不好歡迎大家來批評指導。
what:創建對象的三種模式
--1,門戶大開性 function Book(title){this.title = title} Book.prototype.dispaly = function(){console.log(this.title)} 缺點:無法對用戶傳入的值-title進行控制,如果你得程序需要對值進行嚴格控制,這樣的模式明顯就是問題了
--2,通過getter,setter方法 ?--缺點:雖然程序實現了setTitle和getTitle兩個方法,但是程序員可能由于有意無意對其進行設置,而忽略setTitle.這時候就不能進行限制了。具體大家可以參考設計模式中對于創建對象的講解
--3 創建對象的高級模式
var Book = (function () {function check(val) {
if (typeof(val) != "string") {
return false;
}
else {
return true;
}
}
return function (title) {
var title;
this.getTitle = function () {
return title
}
this.setTitle = function (newTitle) {
if (!check(newTitle)) {
throw new Error(newTitle + "is Invalid");
}
else {
title = newTitle;
}
}
this.setTitle(title);
}
})();
其中里邊的check()方法用來判斷傳入的title是否為字符串,在return返回的函數中定義局部變量title,保證外部不能直接操作這個值。只能通過setTitle方法進行操作。而獲取只能通過getTitle方法進行操作,可以嚴格檢測傳入進來的title是否符合要求。
作為一個前端小菜,寫的東西肯定會有問題,希望大家多多包涵,歡迎留下您寶貴的意見。
?
轉載于:https://www.cnblogs.com/hjdjs/p/6245868.html
總結
以上是生活随笔為你收集整理的js创建对象的高级模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: consolel API大全-附测试结果
- 下一篇: buildroot--ubootkern