js?面向對象學習筆記
數(shù)據(jù)賦值拷貝
1、值得賦值是獨立的
num1=12; num1=num2
將存儲值賦值一份存儲.
2、引用類型的賦值共享數(shù)據(jù)
var age=22; age2=age; age=24 console.log(age);
age2依舊是22
引用類型的賦值共享數(shù)據(jù)
指向同一片內存
3、對象的賦值
var p={
name:"shizi",
age:22,
}
p1=p;
console.log(p.name,p.age);
console.log(p1.name,p1.age);
console.log("------------------------");
p.name="maotai";
p.age=24;
console.log(p.name,p.age);
console.log(p1.name,p1.age);值類型賦值--函數(shù)形參&實參
例一
var num = 10;
function foo(num){
num=100;
console.log(num);
}
console.log(num);
#10例二
var num = 10;
function foo(num1){
//實參: 調用時傳遞的參數(shù)
//形參: 定義時傳遞的參數(shù)
num1=100;
console.log(num1);
}
foo(num);
console.log(num);
# 10 100 10例三
var num = 10;
function foo(num1){
//實參: 調用時傳遞的參數(shù)
//形參: 定義時傳遞的參數(shù)
//var num1=num;
num1=100;
console.log(num1);
}
foo(num);
console.log(num);
# 10 100 10引用類型賦值
var obj={
name:"宅男"
}
function jinhua(param){
param.name="高富帥";
}
jinhua(obj);
console.log(obj.name);
#高富刷var obj={
name:"宅男"
}
function jinhua(param){
param.name="高富帥";
//重新開辟內存,param重新指向一片mem
param={
name: "腐女"
}
param.name="宅男";
}
jinhua(obj);
console.log(obj.name);
#宅男對象的動態(tài)性
動態(tài)添加屬性和方法
p={
name:"劉德華",
age:22
}
//添加屬性方式1
p.gender="male";
//添加屬性方式2
p["salary"]=2000;
//添加對象類型屬性
p.foo=function(){console.log("sing");}
//訪問屬性方式1
console.log(p.foo());
console.log(p.salary);
//訪問屬性方式2
console.log(p["name"];p={
name:"劉德華",
age:22
}
p["salary"]=2000; //是字符串
console.log(p.salary);p={
name:"劉德華",
age:22
}
p[0]=2000; //隱式將0轉換為字符串
//console.log(p.0); //發(fā)現(xiàn)這種方式訪問報錯
console.log(p["0"]); //這種方式正常訪問以下等價
p={
name:"劉德華",
age:22
}
p[{}]="shizi";
console.log(p);p={
name:"劉德華",
age:22
}
p["[object Object]"]="shizi";
console.log(p);探究
a={}
console.log(a.toString());
#"[object Object]"delete刪除屬性
刪除對象的屬性
刪除未用var定義的變量.
- delete返回布爾
- 刪除不存在的屬性,返回true
- 無法刪除原形中的屬性 如 delete obj.toString()
resu=delete obj.name; # resu返回值是true
var num1=100; console.log(num1); console.log(window.num1); # 100 100
num1=100; console.log(num1); console.log(window.num1); # 100 100
var num1=100; delete(num1); console.log(window.num1); # 100
num1=100; //未使用var,可被delete刪除 delete(num1); console.log(window.num1); ## undefined
到此這篇關于js 面向對象的文章就介紹到這了,更多相關js 面向對象內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
IE之動態(tài)添加DOM節(jié)點觸發(fā)window.resize事件
因為頁面很多UI是絕對定位的,所以當窗口大小改變的時候會使原先的布局混亂,只好在每次window.resize的時候重新布局...2010-07-07
Javascript自定義函數(shù)判斷網(wǎng)站訪問類型是PC還是移動終端
如果,能夠判斷出訪問Web網(wǎng)頁的類型(PC還是移動終端)。就可以解決許多絢麗多彩的 Flash效果出不來的問題2014-01-01
javascript性能優(yōu)化之分時函數(shù)的介紹
本篇文章主要介紹了javascript性能優(yōu)化之分時函數(shù)的介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
Bootstrap組件之下拉菜單,多級菜單及按鈕布局方法實例
這篇文章主要介紹了Bootstrap組件之下拉菜單,多級菜單及按鈕布局方法,結合完整實例形式分析了Bootstrap多級菜單布局相關樣式功能與具體使用技巧,需要的朋友可以參考下2017-05-05
JavaScript中for循環(huán)的幾種寫法與效率總結
每個接觸JS的開發(fā)人員都不可避免的與for循環(huán)打交道,畢竟這是遍歷必不可少的工具之一。然而當循環(huán)次數(shù)比較大時,效率問題必須重視。下面這篇文章就主要介紹了JavaScript中幾種for循環(huán)的寫法與效率,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02
利用prop-types第三方庫對組件的props中的變量進行類型檢測
本篇文章主要介紹了利用prop-types第三方庫對組件的props中的變量進行類型檢測的相關知識,具有很好的參考價值。下面跟著小編一起來看下吧2017-05-05

