㈠ 前端怎麼理解面向對象
prototype是javascript實現與管理繼承的一種機制,也是面向對象的設計思想.構造函數的原型存儲著引用對象的一個指針,該指針指向與一個原型對象,對象內部存儲著函數的原始屬性和方法;我們可以藉助prototype屬性,可以訪問原型內部的屬性和方法。
當構造函數被實列化後,所有的實例對象都可以訪問構造函數的原型成員,如果在原型中聲明一個成員,所有的實列方法都可以共享它
原型具有普通對象結構,可以將任何普通對象設置為原型對象; 一般情況下,對象都繼承與Object,也可以理解Object是所有對象的超類,Object是沒有原型的,而構造函數擁有原型,因此實列化的對象也是Object的實列
原型上增加成員屬性或者方法的話,它被所有的實列化對象所共享屬性和方法,但是如果實列化對象有和原型相同的成員成員名字的話,那麼它取到的成員是本實列化對象,如果本實列對象中沒有的話,那麼它會到原型中去查找該成員,如果原型找到就返回,否則的會返回undefined
㈡ 怎麼把前端object對象傳遞給後台
使用ajax發送json給後台。 $.ajax({ type:'POST', url : xxx.action", data : {"list" : '把list拼成json數據'}, dataType : "json", success : function(data){ //成功處理 }, error : function(){ //錯誤代碼 } });
㈢ js對象的用法是什麼
//js中創建對象有兩種方法:
//1、對象字面量法
var o1={name:"aaa",age:17};
//2、構造函數法
var o2=new Object();
o2.name="bbb";
o2.age=20;
㈣ 如何拿到前端傳過來的json對象
將數據以json格式傳給前端:
function generateDtb() {
//寫入
var txtName = document.getElementById("txtName").value;
//創建數組
var dtb = new Array();
//通過循環把數據寫入到數組並返回
for (var i = 0; i < firstGroup.length; i++) {
var row = new Object();
row.Name = txtName;
row.fullMoney = firstGroup[i].value;
row.discount = secondGroup[i].value;
dtb.push(row);
}
return dtb;
}
把數組轉換成json串傳入到後台:
$(function () {
//點擊botton1
$("#lbtnOK").click(function () {
var url = "DiscountManger.aspx?ajax=1";
var dtb = generateDtb();
// var strName = document.getElementById("txtName").value;
if (dtb == null)
{ }
else {
//序列化對象
var postdata = JSON.stringify(dtb);
//非同步請求
$.post(url, { json: postdata }, function (json) {
if (json) {
jBox.tip("添加成功!", "提示");
location.reload();
}
else {
jBox.tip("添加失敗!", "提示");
location.reload();
}
}, "json")
}
});
});
在後台的操作:
首先判斷是否需要傳輸數據
if (!IsPostBack)
{
//判斷是否非同步請求
if (Request.QueryString["ajax"] == "1")
{
ProcessRequest();
}
在這里進行對數據的處理:
///
/// 處理非同步請求
///
private void ProcessRequest()
{
//存入要填寫的策略
ArrayList arrDiscount = new ArrayList();
Response.ContentType = "text/html";
string json = Request.Form["json"];
//反序列化DataTable
if (json == null)
{
return;
}
else
{
DataTable newdtb = Json2Dtb(json);
for (int i = 0; i < newdtb.Rows.Count; i++)
{
Entity.StrategyDiscount enStrategyDiscount = new Entity.StrategyDiscount();
//打折方案名
enStrategyDiscount.name = newdtb.Rows[i]["Name"].ToString();
//商店ID
enStrategyDiscount.shopId = long.Parse(LoginInfo.ShopID);
enStrategyDiscount.fullMoney = Convert.ToDecimal(newdtb.Rows[i]["fullMoney"].ToString());
enStrategyDiscount.discount = Convert.ToDecimal(newdtb.Rows[i]["discount"].ToString());
//寫入數據到數組
arrDiscount.Add(enStrategyDiscount);
}
//寫入數據到資料庫
IStrategyBLL strategy = new StrategyBLL();
if (strategy.AddStrategyDiscount(arrDiscount))
{
Response.Write("true");
Response.End();
}
else
{
Response.Write("false");
Response.End();
}
}
這里,我們需要把json轉換成datatable
///
/// Json轉DataTable
///
///
///
private DataTable Json2Dtb(string json)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = jss.Deserialize(json);
DataTable dtb = new DataTable();
if (dic.Count > 0)
{
foreach (Dictionary drow in dic)
{
if (dtb.Columns.Count == 0)
{
foreach (string key in drow.Keys)
{
dtb.Columns.Add(key, drow[key].GetType());
}
}
DataRow row = dtb.NewRow();
foreach (string key in drow.Keys)
{
row[key] = drow[key];
}
dtb.Rows.Add(row);
}
}
return dtb;
}
這樣,就可以把數據無刷新的寫入到資料庫。
當然,如果我們有一個從資料庫讀取的datatable,如果通過json顯示在前台呢。
首先,我們需要把datatable轉換為json數據
///
/// DataTable轉Json
///
///
///
private string Dtb2Json(DataTable dtb)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = new ArrayList();
foreach (DataRow row in dtb.Rows)
{
Dictionary drow = new Dictionary();
foreach (DataColumn col in dtb.Columns)
{
drow.Add(col.ColumnName, row[col.ColumnName]);
}
dic.Add(drow);
}
return jss.Serialize(dic);
}
然後寫回到前台
///
/// 處理非同步請求
///
private void ProcessRequest()
{
Response.ContentType = "text/html";
string json = Request.Form["json"];
//反序列化DataTable
DataTable newdtb = Json2Dtb(json);
//序列化DataTable為JSON
string back = Dtb2Json(newdtb);
Response.Write(back);
Response.End();
}
在前台接受顯示:
$(function() {
//點擊botton1
$("#botton1").click(function() {
createTable(json);
});
});
//顯示Json中的數據
function createTable(json) {
var table = $("");
for (var i = 0; i < json.length; i++) {
o1 = json[i];
var row = $("");
for (key in o1) {
var td = $("");
td.text(o1[key].toString());
td.appendTo(row);
}
row.appendTo(table);
}
table.appendTo($("#back"));
}
㈤ 如何在前端輸入多個同一對象的各個值,將這個對象的集合傳入到java後台中
前端以id的方式傳參,每個input設置不同的id,後台方法參數裡面接收不就行了,具體怎麼ssm框架下前端傳參到後台,網路一下就ok
㈥ JS 對象之間的比較是怎麼比較的
今天看紅寶書,裡面講到相等操作符,也就是==和===
「如果兩個操作數都是對象,則比較他們是不是同一個對象,如果兩個操作數都指向同一個對象,則相等操作符返回true,否則,返回false」。
我做了一個例子
functionperson(){
//definesomeperopertyhere
}
varp1=newperson();
varp2=newperson();
console.log(p1==p2);//false
按照他說的指向同一個對象了啊,為什麼返回的是false呢?
然後我又查了查,發現有人這樣說
「如果等號兩邊是對象或者對象的函數,則比較地址是否相等(即判斷兩者是否引用的同一對象)」
可是這里的地址指什麼呢?
然後 有綜合了一些查詢結果,發現這里的地址應該指的是內存地址。「每生成一個實例就會重新佔用一些內存」,所以兩次生成的person佔用的是不同的內存地址。所以返回結果是false。
那這樣的話怎麼樣才能用==返回true呢?我又查了一下,沒有找到特別合適的例子,指找到一個用prototype定義函數可以得到== 返回true的效果
functionperson(name){
this.name=name;
}
varp1=newperson("p1");
varp2=newperson("p2");
console.log(p1==p2);//false
person.prototype.sayHi=function(){
//dosayHihere
}
console.log(p1.sayHi()==p2.sayHi());//true
console.log(p1.sayHi()===p2.sayHi());//true
㈦ js中對象一般由什麼組成
js中對象一般由屬性和方法組成。
js對象的分類:
1、內置對象:
由ES標准中定義的對象,比如:Object、Math、Date、String、Array、Number、Boolean、Function等。
2、宿主對象:
由JS的運行環境提供的對象,目前來講主要指由瀏覽器提供的對象。比如BOMDOM。比如console、document。
3、自定義對象:
自己創建的對象,通過new關鍵字創建出來的對象實例。
(7)前端對象擴展閱讀:
js原型對象的作用:
1、在js的所有內置對象中都存在prototype原型屬性。
2、在js的內置對象的原型屬性中,追加方法,那麼該方法會自動追加到內置對象中。
3、js的原型屬性最終的目的是給內置對象追加方法。
使用方式:
function Array(){
//創建一個原型對象
this.prototype(原型屬性) = new Prototype();
//自動追加
this.seach = function(target){
...
}
}
function Prototype(){
this.seach = function(taget){
...
}
㈧ Js中什麼是對象,什麼是方法
什麼是對象
JavaScript 中的所有事物都是對象,如:字元串、數值、數組、函數等,每個對象帶有屬性和方法。
對象的屬性:反映該對象某些特定的性質的,如:字元串的長度、圖像的長寬等;
對象的方法:能夠在對象上執行的動作。例如,表單的「提交」(Submit),時間的「獲取」(getYear)等;
JavaScript 提供多個內建對象,比如 String、Date、Array 等等,使用對象前先定義,如下使用數組對象:
varobjectName=newArray();//使用new關鍵字定義對象
或者
varobjectName=[];
訪問對象屬性的語法:
objectName.propertyName
如使用 Array 對象的 length 屬性來獲得數組的長度:
varmyarray=newArray(6);//定義數組對象
varmyl=myarray.length;//訪問數組長度length屬性
以上代碼執行後,myl的值將是:6
訪問對象的方法:
objectName.methodName()
如使用string 對象的 toUpperCase() 方法來將文本轉換為大寫:
varmystr="Helloworld!";//創建一個字元串
varrequest=mystr.toUpperCase();//使用字元串對象方法
以上代碼執行後,request的值是:HELLO WORLD!
㈨ 前端對象的屬性是純數字的話有什麼影響
不好識別屬性的意思,別人接受你的項目的時候就會很麻煩
㈩ 前端js如何生成一個對象,並轉化為json字元串
首先,你說什麼controller這個東西和你後面的如何遍歷集合在返回成json一點關系都沒有。
你要做的不是講集合變成json對象,而是將集合變為json字元串,這樣在返回前端的時候就是json字元串,前端在自己變為json對象。
其次,如果這個工程是你自己建的,那麼你可以要導入json的工具包,或者你自己寫一個轉化為json對象的方法。