本文目錄一覽:
- 1、JS對象創建常用方式有哪些
- 2、JS中new與Object.create()的區別深入解析
- 3、如何使用Createjs來編寫HTML5遊戲EaselJS簡介
- 4、createTextRange()方法在js中有什麼作用
- 5、js中Ext.create()是什麼東西 ? 有什麼作用?求解答
JS對象創建常用方式有哪些
1.對象字面量創建對象
var obj = { a:1,b:2 };
注意:對象字面量是一個表達式,這種表達式每次運算都會創建並初始化一個新對象,並計算這個新對象的每個屬性值。所以如果在循環體內使用對象字面量,每次循環時都會創建新對象。
2.通過new運算符創建對象
var obj = new Object(); //創建空對象 var ary = new Array(); //創建空的數組對象
注意:new運算符後面跟的是一個函數調用,這個函數被稱為構造函數。js中原始類型都包含內置的構造函數,也可以自己定義構造函數。
3.通過立即執行函數創建對象
var obj = (function(){ return {x:1,y:2};}());
注意:在立即執行函數內部一定要有return語句,return出的內容就是待創建的對象。
4.通過Object.create()創建對象
var obj = Object.create({x:1,y:2});
注意:Object.create()是一個靜態函數,傳入原型對象就可以創建繼承此原型對象的對象,例如上面的例子中obj對象繼承了x,y屬性。
JS中new與Object.create()的區別深入解析
在網上看了很多關於new與Object.create()的區別的文章,看的稀里糊塗的,各種說法的都有,看「你不懂的JS」那本書上也提到了這個,看的懷疑人生了。遂自己總結下認為比較說的通的一種理解。
new首先創建一個空對象testA,然後改變this調用Test構造函數,最後將新對象的瀏覽器屬性 __proto__ 指向Test的原型
創建一個臨時對象F,最終testB的 __proto__ 指向Test構造函數
感覺還是沒徹底講清楚。未完待續吧
如何使用Createjs來編寫HTML5遊戲EaselJS簡介
createJs的由來,基礎什麼的就不說了,就直接說createJs的用法吧。
首先到createJs官網下載,createJs分成easelJs(圖形動畫)、preloadJs(文件載入)、soundJs(音頻控制)以及tweenJs(補間動畫)四部分,大家下載的時候,建議下載兩個文件,一個是壓縮版文件,用於項目中的引用,再下載個源碼文件,用於查看用法、API、demo等。因為樓主目前只用了easelJs和preloadJs,所以暫時就只說這兩個,其實就這兩個已經非常夠用了。
接下來開始分析代碼:
首先引入js文件
script
src=”easeljs-0.7.1.min.js”/script
script
src=”preloadjs-0.4.1.min.js”/script
然後進行舞台初始化操作:
function
init(){
stage
=
new
createjs.Stage(“cas”);
C_W
=
stage.canvas.width;
C_H
=
stage.canvas.height;
var
manifest
=
[
{src:”image/man.png”
,
id:”man”},
{src:”image/ground.png”
,
id:”ground”},
{src:”image/bg.png”
,
id:”bg”},
{src:”image/high.jpg”
,
id:”high”},
{src:”image/coins.png”
,
id:”coin”}
]
loader
=
new
createjs.LoadQueue(false);
loader.addEventListener(“complete”
,
handleComplete);
loader.loadManifest(manifest);
drawLoading();
}
上面就用到了preloadJs中的方法,實例化一個loader,把需要載入的圖片文件放在manifest裡面,進行載入,載入完成後調用回調handleCompelete函數:
function
handleComplete(){
//當圖片素材load完後執行該方法
var
manImage
=
loader.getResult(“man”),
lowground
=
loader.getResult(“ground”),
highground
=
loader.getResult(“high”),
bgImage
=
loader.getResult(“bg”),
coins
=
loader.getResult(“coin”);
sky
=
new
createjs.Shape();
sky.graphics.bf(bgImage).drawRect(0,0,C_W,C_H);
sky.setTransform(0,
0,
1
,
C_H/bgImage.height);
stage.addChild(sky);
man
=
createMan(200,326,manImage);
//該框為判定角色的判定區域
kuang
=
new
createjs.Shape();
kuang.graphics.beginStroke(“rgba(255,0,0,0.5)”).drawRect(0
,
,
man.size().w
,
man.picsize().h*1.5);
//
stage.addChild(kuang);
mapHandle(lowground
,
highground
,
coins);
createjs.Ticker.timingMode
=
createjs.Ticker.RAF;//設置循環方法,可以是requestAnimationFrame或者是setTimeout
createjs.Ticker.setFPS(30);//舞台幀率控制
createjs.Ticker.addEventListener(“tick”,
tick);//綁定舞台每一幀的邏輯發生函數
window.addEventListener(“keydown”
,
function(event){
event
=
event||window.event;
if(event.keyCode===32man.jumpNumman.jumpMax){
man.jump();
}
})
}
獲得載入完成後端的圖片數據就直接用loader.getResult就可以獲取了,跑酷遊戲需要一個背景,所以,我們實例化一個sky,然後進行點陣圖繪製,bf方法是beginBitmapFill的縮寫,該方法就是開始繪製點陣圖,後面的drawRect是點陣圖的繪製區域,區域當然是整個畫布啦,所以就是drawRect(0,0,C_W,C_H)。實例化出來sky後就直接添加到舞台stage裡面就行了。接下來是實例化一個角色,createMan方法後面有說,是自己封裝的。
然後進行舞台循環設置,上面有注釋了,就不說了。
createTextRange()方法在js中有什麼作用
主要是用來對一些文本對象進行操作.比如你有一大段文字,都在同一個P標籤內,但是你只希望通過JS改變其中的一小部分,這時就可以用createTextRange來創建Range對象操作文本.因為默認情況下文本只是文本,並不是對象,要想像操作對象那樣操作文本,只能是創建為Range對象.這是要操作的文本就具有了對象的功能和特性了.
js中Ext.create()是什麼東西 ? 有什麼作用?求解答
Ext.create
說明:實例化類,在EXTJS4中建議用create方法實例化類
Ext.onReady(function () {
//創建一個類,類名:TextClass,具有兩個屬性:A、B
Ext.define(‘TextClass’, {
A: ‘a’,
B: ‘b’
});
var textClass = Ext.create(“TextClass”)
Ext.Msg.alert(‘textClass屬性’, textClass.A + ‘ ‘ + textClass.B )
});
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/198197.html